Cpp-Taskflow: A General-Purpose Parallel Task Programming System at Scale

Tsung Wei Huang, Yibo Lin, Chun Xun Lin, Guannan Guo, Martin D.F. Wong

Research output: Contribution to journalArticlepeer-review

Abstract

This article introduces Cpp-Taskflow, a high-performance parallel task programming system, to streamline the building of large and complex parallel applications. 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 and dynamic control flows. 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 large-scale design automation problems of million-scale tasking. In a particular timing analysis workload, Cpp-Taskflow outperformed OpenMP by 2 times faster using 2 times fewer lines of code. We have also shown Cpp-Taskflow achieved up to 47.81% speed-up with 28.5% less code over the industrial-strength library, Intel Threading Building Blocks, on a detailed placement problem.

Original languageEnglish (US)
Article number9200667
Pages (from-to)1687-1700
Number of pages14
JournalIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Volume40
Issue number8
DOIs
StatePublished - Aug 2021

Keywords

  • Computer-aided design (CAD)
  • parallel programming systems
  • task parallelism

ASJC Scopus subject areas

  • Software
  • Computer Graphics and Computer-Aided Design
  • Electrical and Electronic Engineering

Fingerprint

Dive into the research topics of 'Cpp-Taskflow: A General-Purpose Parallel Task Programming System at Scale'. Together they form a unique fingerprint.

Cite this