Argonne National Laboratory

Argobots: A Lightweight Threading/Tasking Framework

TitleArgobots: A Lightweight Threading/Tasking Framework
Publication TypeJournal Article
Year of Publication2016
AuthorsSeo, S, Amer, A, Balaji, P, Bordage, C, Bosilca, G, Brooks, A, Castello, A, Genet, D, Herault, T, Jindal, P, Kale, L, Krishnamoorthy, S, Lifflander, J, Lu, H, Meneses, E, Snir, M, Sun, Y, Beckman, PH
JournalIEEE Transactions on Parallel and Distributed Systems
Date Published10/2017
Other NumbersANL/MCS-P5515-0116
AbstractIn this paper, we present a lightweight, low-level threading and tasking framework, called Argobots, to support massive on-node parallelism. Unlike other threading models, Argobots provides users with efficient threading and tasking mechanisms, not policies, so that users can develop their own solutions. To achieve this goal, Argobots supports two kinds of work units: user-level threads and tasklets. The former have an associated stack and allow blocking calls, while the latter do not but provide fast context switching. Argobots also exposes hardware resources (e.g., cores) as execution streams (ESs) and provides mapping mechanisms between work units and ESs. Moreover, Argobots supports lower-level control of scheduling and stackable scheduling with pluggable strategies. Along with the design, this paper describes the implementation and optimizations of Argobots. The evaluation results with benchmarks on many-core machines show that Argobots incurs low overhead with sustainable and scalable performance and enables users to develop their own efficient solutions.