1. Cpp-Taskflow: A General-Purpose Parallel Task Programming System at Scale.
- Author
-
Huang, Tsung-Wei, Lin, Yibo, Lin, Chun-Xun, Guo, Guannan, and Wong, Martin D. F.
- Subjects
PARALLEL programming ,GRAPH algorithms ,C++ ,HEURISTIC algorithms ,TASK analysis ,PARALLEL processing - 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× faster using 2× 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. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF