论文标题
管道:使用现代C ++的高效任务并行管道编程框架
Pipeflow: An Efficient Task-Parallel Pipeline Programming Framework using Modern C++
论文作者
论文摘要
管道是一种基本的并行编程模式。主流管道编程框架依靠数据抽象来执行管道调度。对于以数据为中心的管道应用程序,此设计很方便,但对于仅利用管道中的任务并行性的算法效率低下。结果,我们引入了一个名为PipeFlow的新任务并行管道编程框架。 PipeFlow并没有设计其他数据抽象,而是专注于管道调度本身,从而比现有框架更有效地实现了任务并行管道算法。我们已经在微基准和现实世界应用上评估了管流。例如,在VLSI放置和计时分析工作负载中,PipeFlow优于ONETBB 24%和10%,这些工作负载分别采用管道并行以加快运行时间。
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.