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

02/01/2022
by   Cheng-Hsiang Chiu, et al.
0

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 a VLSI placement and a timing analysis workloads that adopt pipeline parallelism to speed up runtimes, respectively.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset