A modern C++ parallel task programming library

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

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

In this paper we present Cpp-Taskflow, a C++ parallel programming library that enables users to quickly develop parallel applications using the task dependency graph model. Developers formulate their application as a task dependency graph and Cpp-Taskflow will manage the task execution and concurrency control. The task graph model is expressive and composable. It can express both regular and irregular parallel patterns, and developers can quickly compose large programs from small parallel modules. Cpp-Taskflow has an intuitive and unified API set. Users only need to learn the APIs to build and dispatch a task graph and no complex parallel programming concept is required. We have conducted experiments using both micro-benchmarks and real-world applications and Cpp-Taskflow outperforms state-of-the-art parallel programming libraries in both runtime and coding effort. Cpp-Taskflow is open-source and has been used in both industry and academic projects. From our users' feedback, we believe Cpp-Taskflow can benefit the industry and research community greatly through its ease-of-programming and inspire new research directions in multimedia system/software design.

Original languageEnglish (US)
Title of host publicationMM 2019 - Proceedings of the 27th ACM International Conference on Multimedia
PublisherAssociation for Computing Machinery
Pages2284-2287
Number of pages4
ISBN (Electronic)9781450368896
DOIs
StatePublished - Oct 15 2019
Event27th ACM International Conference on Multimedia, MM 2019 - Nice, France
Duration: Oct 21 2019Oct 25 2019

Publication series

NameMM 2019 - Proceedings of the 27th ACM International Conference on Multimedia

Conference

Conference27th ACM International Conference on Multimedia, MM 2019
Country/TerritoryFrance
CityNice
Period10/21/1910/25/19

Keywords

  • Parallel programming
  • Task dependency graph
  • Task parallelism

ASJC Scopus subject areas

  • General Computer Science
  • Media Technology

Fingerprint

Dive into the research topics of 'A modern C++ parallel task programming library'. Together they form a unique fingerprint.

Cite this