Abstract
In this paper we introduce Cpp-Taskflow, a new C++ tasking library to help developers quickly write parallel programs using task dependency graphs. Cpp-Taskflow leverages the power of modern C++ and task-based approaches to enable efficient implementations of parallel decomposition strategies. Our programming model can quickly handle not only traditional loop-level parallelism, but also irregular patterns such as graph algorithms, incremental flows, and dynamic data structures. Compared with existing libraries, Cpp-Taskflow is more cost efficient in performance scaling and software integration. We have evaluated Cpp-Taskflow on both micro-benchmarks and real-world applications with million-scale tasking. In a machine learning example, Cpp-Taskflow achieved 1.5-2.7× less coding complexity and 14-38% speed-up over two industrial-strength libraries OpenMP Tasking and Intel Threading Building Blocks (TBB).
Original language | English |
---|---|
Title of host publication | 2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS) |
Publisher | IEEE |
Pages | 974-983 |
Number of pages | 10 |
ISBN (Electronic) | 9781728112466 |
ISBN (Print) | 9781728112473 (Print on Demand) |
DOIs | |
Publication status | Published - May 2019 |
Event | 2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS) - Rio de Janeiro, Brazil Duration: 20 May 2019 → 24 May 2019 https://ieeexplore.ieee.org/xpl/conhome/8804711/proceeding (Link to conference proceedings) |
Publication series
Name | Proceedings of IEEE International Parallel and Distributed Processing Symposium (IPDPS) |
---|
Symposium
Symposium | 2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS) |
---|---|
Country/Territory | Brazil |
City | Rio de Janeiro |
Period | 20/05/19 → 24/05/19 |
Internet address |
|
User-Defined Keywords
- Task analysis
- parallel programming library and model
- multithreading