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