Cpp-Taskflow: A General-purpose Parallel and Heterogeneous Task Programming System at Scale
Department of Electrical and Computer Engineering, University of Utah
arXiv:2004.10908 [cs.DC], (23 Apr 2020)
@misc{huang2020cpptaskflow,
title={Cpp-Taskflow: A General-purpose Parallel and Heterogeneous Task Programming System at Scale},
author={Tsung-Wei Huang and Dian-Lun Lin and Yibo Lin and Chun-Xun Lin},
year={2020},
eprint={2004.10908},
archivePrefix={arXiv},
primaryClass={cs.DC}
}
The Cpp-Taskflow project addresses the long-standing question: How can we make it easier for developers to write parallel and heterogeneous programs with high performance and simultaneous high productivity? Cpp-Taskflow develops a simple and powerful task programming model to enable efficient implementations of heterogeneous decomposition strategies. Our programming model empowers users with both static and dynamic task graph constructions to incorporate a broad range of computational patterns including hybrid CPU-GPU computing, dynamic control flow, and irregularity. We develop an efficient heterogeneous work-stealing strategy that adapts worker threads to available task parallelism at any time during the graph execution. We have demonstrated promising performance of Cpp-Taskflow on both micro-benchmark and real-world applications. As an example, we solved a large machine learning workload by up to 1.5x faster, 1.6x less memory, and 1.7x fewer lines of code than two industrial-strength systems, oneTBB and StarPU, on a machine of 40 CPUs and 4 GPUs.
April 26, 2020 by hgpu