TY - JOUR
T1 - Argobots
T2 - A Lightweight Low-Level Threading and Tasking Framework
AU - Seo, Sangmin
AU - Amer, Abdelhalim
AU - Balaji, Pavan
AU - Bordage, Cyril
AU - Bosilca, George
AU - Brooks, Alex
AU - Carns, Philip
AU - Castello, Adrian
AU - Genet, Damien
AU - Herault, Thomas
AU - Iwasaki, Shintaro
AU - Jindal, Prateek
AU - Kale, Laxmikant V.
AU - Krishnamoorthy, Sriram
AU - Lifflander, Jonathan
AU - Lu, Huiwei
AU - Meneses, Esteban
AU - Snir, Marc
AU - Sun, Yanhua
AU - Taura, Kenjiro
AU - Beckman, Pete
N1 - Publisher Copyright:
© 2017 IEEE.
PY - 2018/3/1
Y1 - 2018/3/1
N2 - In the past few decades, a number of user-level threading and tasking models have been proposed in the literature to address the shortcomings of OS-level threads, primarily with respect to cost and flexibility. Current state-of-the-art user-level threading and tasking models, however, either are too specific to applications or architectures or are not as powerful or flexible. In this paper, we present Argobots, a lightweight, low-level threading and tasking framework that is designed as a portable and performant substrate for high-level programming models or runtime systems. Argobots offers a carefully designed execution model that balances generality of functionality with providing a rich set of controls to allow specialization by end users or high-level programming models. We describe the design, implementation, and performance characterization of Argobots and present integrations with three high-level models: OpenMP, MPI, and colocated I/O services. Evaluations show that (1) Argobots, while providing richer capabilities, is competitive with existing simpler generic threading runtimes; (2) our OpenMP runtime offers more efficient interoperability capabilities than production OpenMP runtimes do; (3) when MPI interoperates with Argobots instead of Pthreads, it enjoys reduced synchronization costs and better latency-hiding capabilities; and (4) I/O services with Argobots reduce interference with colocated applications while achieving performance competitive with that of a Pthreads approach.
AB - In the past few decades, a number of user-level threading and tasking models have been proposed in the literature to address the shortcomings of OS-level threads, primarily with respect to cost and flexibility. Current state-of-the-art user-level threading and tasking models, however, either are too specific to applications or architectures or are not as powerful or flexible. In this paper, we present Argobots, a lightweight, low-level threading and tasking framework that is designed as a portable and performant substrate for high-level programming models or runtime systems. Argobots offers a carefully designed execution model that balances generality of functionality with providing a rich set of controls to allow specialization by end users or high-level programming models. We describe the design, implementation, and performance characterization of Argobots and present integrations with three high-level models: OpenMP, MPI, and colocated I/O services. Evaluations show that (1) Argobots, while providing richer capabilities, is competitive with existing simpler generic threading runtimes; (2) our OpenMP runtime offers more efficient interoperability capabilities than production OpenMP runtimes do; (3) when MPI interoperates with Argobots instead of Pthreads, it enjoys reduced synchronization costs and better latency-hiding capabilities; and (4) I/O services with Argobots reduce interference with colocated applications while achieving performance competitive with that of a Pthreads approach.
KW - Argobots
KW - I/O
KW - MPI
KW - OpenMP
KW - context switch
KW - interoperability
KW - lightweight
KW - stackable scheduler
KW - tasklet
KW - user-level thread
UR - http://www.scopus.com/inward/record.url?scp=85032446150&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85032446150&partnerID=8YFLogxK
U2 - 10.1109/TPDS.2017.2766062
DO - 10.1109/TPDS.2017.2766062
M3 - Article
AN - SCOPUS:85032446150
SN - 1045-9219
VL - 29
SP - 512
EP - 526
JO - IEEE Transactions on Parallel and Distributed Systems
JF - IEEE Transactions on Parallel and Distributed Systems
IS - 3
M1 - 8082139
ER -