OpenCilk: A Modular and Extensible Software Infrastructure for Fast Task-Parallel Code

OpenCilk: A Modular and Extensible Software Infrastructure for Fast Task-Parallel Code
复制标题

OpenCilk:用于快速任务并行代码的模块化且可扩展的软件基础设施

DOI:
10.1145/3572848.3577509
复制
发表时间:
2023
期刊:
Proceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming
影响因子:
--
通讯作者:
Lee, I-Ting Angelina
Lee, I-Ting Angelina
中科院分区:
--
文献类型:
--
作者:
Schardl, Tao B.;Lee, I-Ting Angelina

文献摘要

参考文献

被引文献

相似文献

本文介绍了OpenCilk,一个用于任务并行编程的开源软件基础设施,它允许大量的代码重用,并在语言抽象、编译策略、运行时机制和生产力工具开发方面轻松探索设计选择。OpenCilk基础设施由三个主要组件组成:一个编译器设计用于编译fork-join任务并行代码,一个高效的工作窃取运行时调度器,以及一个基于编译器插装的生产力工具开发框架,用于fork-join并行计算。OpenCilk是模块化的-修改一个组件的大部分不需要修改其他组件-易于扩展-它的构造自然鼓励代码重用。尽管是模块化的,易于扩展,OpenCilk产生高性能的代码。我们研究了OpenCilk的模块化,可扩展性,和性能通过几个案例研究,包括研究扩展OpenCilk,以支持多个并行运行时系统,包括Cilk Plus,OpenMP,和oneTBB。OpenCilk的设计使新的编译器后端能够快速原型化,以针对不同的并行运行时ABI。每个后端需要少于2000行的新代码。我们在15个基准Cilk程序上对OpenCilk运行时的性能进行了实证研究,发现它在1个核心上的几何平均值为4%-26%,在48个核心上的几何平均值为10%-120%。
This paper presents OpenCilk, an open-source software infrastructure for task-parallel programming that allows for substantial code reuse and easy exploration of design choices in language abstraction, compilation strategy, runtime mechanism, and productivity-tool development.The OpenCilk infrastructure consists of three main components: a compiler designed to compile fork-join task-parallel code, an efficient work-stealing runtime scheduler, and a productivity-tool development framework based on compiler instrumentation designed for fork-join parallel computations. OpenCilk ismodular--- modifying one component for the most part does not necessitate modifications to the other components --- andeasy to extend--- its construction naturally encourages code reuse. Despite being modular and easy to extend, OpenCilk produceshigh-performingcode.We investigated OpenCilk's modularity, extensibility, and performance through several case studies, including a study to extend OpenCilk to support multiple parallel runtime systems, including Cilk Plus, OpenMP, and oneTBB. OpenCilk's design enables rapid prototyping of new compiler back ends to target different parallel-runtime ABIs. Each back end required fewer than 2000 new lines of code. We examined the OpenCilk runtime's performance empirically on 15 benchmark Cilk programs and found that it outperforms the other runtimes by a geometric mean of 4%--26% on 1 core and 10%--120% on 48 cores.
已证明良好且实用高效的 Fork-Join 程序并行竞争检测
DOI: 10.1145/2935764.2935801
发表时间: 2016
期刊: Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures
影响因子: --
作者:
Utterback, Robert;Agrawal, Kunal;Fineman, Jeremy T.;Lee, I-Ting Angelina
通讯作者: Lee, I-Ting Angelina
DOI: --
发表时间: 2018
期刊: International Workshop on OpenMP
影响因子: --
作者:
J. Doerfert;H. Finkel
通讯作者: H. Finkel
DOI: --
发表时间: 2013
期刊: Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques
影响因子: --
作者:
R. Barik;Jisheng Zhao;Vivek Sarkar
通讯作者: Vivek Sarkar
Cilkprof 可扩展性分析器
DOI: --
发表时间: 2015
期刊: ACM Symposium on Parallelism in Algorithms and Architectures
影响因子: --
作者:
T. Schardl;Bradley C. Kuszmaul;I. Lee;W. Leiserson;C. Leiserson
通讯作者: C. Leiserson
ThinLTO:可扩展和增量 LTO
DOI: --
发表时间: 2017
期刊: IEEE/ACM International Symposium on Code Generation and Optimization
影响因子: --
作者:
Teresa L. Johnson;M. Amini;D. Li
通讯作者: D. Li