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, Inc
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
CountryFrance
CityNice
Period10/21/1910/25/19

Fingerprint

Parallel programming
Application programming interfaces (API)
Concurrency control
Multimedia systems
Software design
Computer programming
Industry
Feedback
Experiments

Keywords

  • Parallel programming
  • Task dependency graph
  • Task parallelism

ASJC Scopus subject areas

  • Media Technology
  • Computer Science(all)

Cite this

Lin, C. X., Huang, T. W., Guo, G., & Wong, M. D. F. (2019). A modern C++ parallel task programming library. In MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia (pp. 2284-2287). (MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia). Association for Computing Machinery, Inc. https://doi.org/10.1145/3343031.3350537

A modern C++ parallel task programming library. / Lin, Chun Xun; Huang, Tsung Wei; Guo, Guannan; Wong, Martin D.F.

MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia. Association for Computing Machinery, Inc, 2019. p. 2284-2287 (MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia).

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

Lin, CX, Huang, TW, Guo, G & Wong, MDF 2019, A modern C++ parallel task programming library. in MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia. MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia, Association for Computing Machinery, Inc, pp. 2284-2287, 27th ACM International Conference on Multimedia, MM 2019, Nice, France, 10/21/19. https://doi.org/10.1145/3343031.3350537
Lin CX, Huang TW, Guo G, Wong MDF. A modern C++ parallel task programming library. In MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia. Association for Computing Machinery, Inc. 2019. p. 2284-2287. (MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia). https://doi.org/10.1145/3343031.3350537
Lin, Chun Xun ; Huang, Tsung Wei ; Guo, Guannan ; Wong, Martin D.F. / A modern C++ parallel task programming library. MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia. Association for Computing Machinery, Inc, 2019. pp. 2284-2287 (MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia).
@inproceedings{95e1a76aa58943c1a1255ead0ada3866,
title = "A modern C++ parallel task programming library",
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.",
keywords = "Parallel programming, Task dependency graph, Task parallelism",
author = "Lin, {Chun Xun} and Huang, {Tsung Wei} and Guannan Guo and Wong, {Martin D.F.}",
year = "2019",
month = "10",
day = "15",
doi = "10.1145/3343031.3350537",
language = "English (US)",
series = "MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia",
publisher = "Association for Computing Machinery, Inc",
pages = "2284--2287",
booktitle = "MM 2019 - Proceedings of the 27th ACM International Conference on Multimedia",

}

TY - GEN

T1 - A modern C++ parallel task programming library

AU - Lin, Chun Xun

AU - Huang, Tsung Wei

AU - Guo, Guannan

AU - Wong, Martin D.F.

PY - 2019/10/15

Y1 - 2019/10/15

N2 - 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.

AB - 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.

KW - Parallel programming

KW - Task dependency graph

KW - Task parallelism

UR - http://www.scopus.com/inward/record.url?scp=85074861407&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=85074861407&partnerID=8YFLogxK

U2 - 10.1145/3343031.3350537

DO - 10.1145/3343031.3350537

M3 - Conference contribution

AN - SCOPUS:85074861407

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

SP - 2284

EP - 2287

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

PB - Association for Computing Machinery, Inc

ER -