Litcius/Paper detail

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

2020IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems27 citationsDOI

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.

Topics & Concepts

Computer scienceParallel computingWorkloadTask parallelismSource lines of codeTask (project management)ImplementationAutomationCompilerCode (set theory)Parallel programming modelSoftwareProgramming paradigmEmbedded systemComputer architectureParallelism (grammar)Programming languageOperating systemMechanical engineeringEngineeringSet (abstract data type)ManagementEconomicsParallel Computing and Optimization TechniquesGraph Theory and AlgorithmsDistributed and Parallel Computing Systems