Cpp-Taskflow: Fast Task-Based Parallel Programming Using Modern C++

Tsung-Wei Huang, Chun-Xun Lin, Guannan Guo, Martin Wong

Research output: Chapter in book/report/conference proceedingConference proceedingpeer-review

71 Citations (Scopus)

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 languageEnglish
Title of host publication2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS)
PublisherIEEE
Pages974-983
Number of pages10
ISBN (Electronic)9781728112466
ISBN (Print)9781728112473 (Print on Demand)
DOIs
Publication statusPublished - May 2019
Event2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS) - Rio de Janeiro, Brazil
Duration: 20 May 201924 May 2019
https://ieeexplore.ieee.org/xpl/conhome/8804711/proceeding (Link to conference proceedings)

Publication series

NameProceedings of IEEE International Parallel and Distributed Processing Symposium (IPDPS)

Symposium

Symposium2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS)
Country/TerritoryBrazil
CityRio de Janeiro
Period20/05/1924/05/19
Internet address

User-Defined Keywords

  • Task analysis
  • parallel programming library and model
  • multithreading

Fingerprint

Dive into the research topics of 'Cpp-Taskflow: Fast Task-Based Parallel Programming Using Modern C++'. Together they form a unique fingerprint.

Cite this