English

Pipeflow: An Efficient Task-Parallel Pipeline Programming Framework using Modern C++

Distributed, Parallel, and Cluster Computing 2022-02-03 v1

Abstract

Pipeline is a fundamental parallel programming pattern. Mainstream pipeline programming frameworks count on data abstractions to perform pipeline scheduling. This design is convenient for data-centric pipeline applications but inefficient for algorithms that only exploit task parallelism in pipeline. As a result, we introduce a new task-parallel pipeline programming framework called Pipeflow. Pipeflow does not design yet another data abstraction but focuses on the pipeline scheduling itself, enabling more efficient implementation of task-parallel pipeline algorithms than existing frameworks. We have evaluated Pipeflow on both micro-benchmarks and real-world applications. As an example, Pipeflow outperforms oneTBB 24% and 10% faster in a VLSI placement and a timing analysis workloads that adopt pipeline parallelism to speed up runtimes, respectively.

Keywords

Cite

@article{arxiv.2202.00717,
  title  = {Pipeflow: An Efficient Task-Parallel Pipeline Programming Framework using Modern C++},
  author = {Cheng-Hsiang Chiu and Tsung-Wei Huang and Zizheng Guo and Yibo Lin},
  journal= {arXiv preprint arXiv:2202.00717},
  year   = {2022}
}