Argobots: A Lightweight Low-Level Threading and Tasking Framework
Abstract
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 performancemore »
- Authors:
-
more »
- Argonne National Lab. (ANL), Argonne, IL (United States)
- Inria, Bordeaux (France)
- Univ. of Tennessee, Knoxville, TN (United States)
- Univ. of Illinois, Urbana-Champaign, IL (United States)
- Universitat Jaume I., Castello de la Plana (Spain)
- Univ. of Tokyo (Japan)
- Pacific Northwest National Lab. (PNNL), Richland, WA (United States)
- Sandia National Lab. (SNL-CA), Livermore, CA (United States)
- Tencent, Shenzhen (China)
- Costa Rica Inst. of Technology, Cartago (Costa Rica). Costa Rica National High Technology Center
- Google, Mountain View, CA (United States)
- Publication Date:
- Research Org.:
- Pacific Northwest National Lab. (PNNL), Richland, WA (United States); Argonne National Lab. (ANL), Argonne, IL (United States)
- Sponsoring Org.:
- USDOE Office of Science (SC), Basic Energy Sciences (BES)
- OSTI Identifier:
- 1413456
- Alternate Identifier(s):
- OSTI ID: 1426768
- Report Number(s):
- PNNL-SA-130264
Journal ID: ISSN 1045-9219; TRN: US1800430
- Grant/Contract Number:
- AC02-06CH11357; AC05-76RL01830
- Resource Type:
- Accepted Manuscript
- Journal Name:
- IEEE Transactions on Parallel and Distributed Systems
- Additional Journal Information:
- Journal Volume: 29; Journal Issue: 3; Journal ID: ISSN 1045-9219
- Publisher:
- IEEE
- Country of Publication:
- United States
- Language:
- English
- Subject:
- 42 ENGINEERING; Argobots; user-level thread; tasklet; OpenMP; MPI; I/O; interoperability; lightweight; context switch; stackable scheduler
Citation Formats
Seo, Sangmin, Amer, Abdelhalim, Balaji, Pavan, Bordage, Cyril, Bosilca, George, Brooks, Alex, Carns, Philip, Castello, Adrian, Genet, Damien, Herault, Thomas, Iwasaki, Shintaro, Jindal, Prateek, Kale, Laxmikant V., Krishnamoorthy, Sriram, Lifflander, Jonathan, Lu, Huiwei, Meneses, Esteban, Snir, Marc, Sun, Yanhua, Taura, Kenjiro, and Beckman, Pete. Argobots: A Lightweight Low-Level Threading and Tasking Framework. United States: N. p., 2017.
Web. doi:10.1109/TPDS.2017.2766062.
Seo, Sangmin, Amer, Abdelhalim, Balaji, Pavan, Bordage, Cyril, Bosilca, George, Brooks, Alex, Carns, Philip, Castello, Adrian, Genet, Damien, Herault, Thomas, Iwasaki, Shintaro, Jindal, Prateek, Kale, Laxmikant V., Krishnamoorthy, Sriram, Lifflander, Jonathan, Lu, Huiwei, Meneses, Esteban, Snir, Marc, Sun, Yanhua, Taura, Kenjiro, & Beckman, Pete. Argobots: A Lightweight Low-Level Threading and Tasking Framework. United States. https://doi.org/10.1109/TPDS.2017.2766062
Seo, Sangmin, Amer, Abdelhalim, Balaji, Pavan, Bordage, Cyril, Bosilca, George, Brooks, Alex, Carns, Philip, Castello, Adrian, Genet, Damien, Herault, Thomas, Iwasaki, Shintaro, Jindal, Prateek, Kale, Laxmikant V., Krishnamoorthy, Sriram, Lifflander, Jonathan, Lu, Huiwei, Meneses, Esteban, Snir, Marc, Sun, Yanhua, Taura, Kenjiro, and Beckman, Pete. Tue .
"Argobots: A Lightweight Low-Level Threading and Tasking Framework". United States. https://doi.org/10.1109/TPDS.2017.2766062. https://www.osti.gov/servlets/purl/1413456.
@article{osti_1413456,
title = {Argobots: A Lightweight Low-Level Threading and Tasking Framework},
author = {Seo, Sangmin and Amer, Abdelhalim and Balaji, Pavan and Bordage, Cyril and Bosilca, George and Brooks, Alex and Carns, Philip and Castello, Adrian and Genet, Damien and Herault, Thomas and Iwasaki, Shintaro and Jindal, Prateek and Kale, Laxmikant V. and Krishnamoorthy, Sriram and Lifflander, Jonathan and Lu, Huiwei and Meneses, Esteban and Snir, Marc and Sun, Yanhua and Taura, Kenjiro and Beckman, Pete},
abstractNote = {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.},
doi = {10.1109/TPDS.2017.2766062},
journal = {IEEE Transactions on Parallel and Distributed Systems},
number = 3,
volume = 29,
place = {United States},
year = {Tue Oct 24 00:00:00 EDT 2017},
month = {Tue Oct 24 00:00:00 EDT 2017}
}
Web of Science