Pipeflow: an Efficient Task-Parallel Pipeline Programming Framework Using Modern C++.

Cheng-Hsiang Chiu,Tsung-Wei Huang,Zizheng Guo,Yibo Lin
DOI: https://doi.org/10.48550/arxiv.2202.00717
2022-01-01
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.
What problem does this paper attempt to address?