Task parallel assembly language for uncompromising parallelism

Task parallel assembly language for uncompromising parallelism
复制标题

任务并行汇编语言可实现毫不妥协的并行性

DOI:
10.1145/3453483.3460969
复制
发表时间:
2021
期刊:
PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation
影响因子:
--
通讯作者:
Acar, Umut A.
Acar, Umut A.
中科院分区:
--
文献类型:
--
作者:
Rainey, Mike;Newton, Ryan R.;Hale, Kyle;Hardavellas, Nikos;Campanoni, Simone;Dinda, Peter;Acar, Umut A.

文献摘要

参考文献

被引文献

相似文献

实现并行性能和可伸缩性需要在并行计算和顺序计算之间做出妥协。如果不加以控制,并行性的开销很容易超过它的好处,有时甚至超过几个数量级。今天,我们希望程序员通过手动优化代码来实现这种折衷。这个过程是劳动密集型的,需要深厚的专业知识,并降低代码质量。最近的工作心跳调度显示了一个有前途的方法,体现了潜在的大量可用的,潜在的并行性,在一个定期的速度,甚至节拍的基础上。这个想法是将并行性的开销分摊到节拍之间执行的有用工作上。心跳调度在理论上是有前途的,但现实是复杂的:它没有已知的实际implementation.In本文中,我们提出了一个实用的方法心跳调度,涉及装备的汇编语言与一个小的原语集。这些原语利用现有的内核和硬件对中断的支持,以允许并行性保持潜伏状态,直到心跳出现时,才能以低成本表现出来。我们的任务并行汇编语言(TPAL)是一种紧凑的、类似RISC的汇编语言。我们指定TPAL通过一个抽象的机器和实现的抽象机器作为编译器转换为C/C++代码和一个专门的运行时系统。我们提出了一个评估的Linux和Nautilus内核,考虑一系列的心跳中断机制。评估表明,TPAL可以显着减少并行开销,而不影响可扩展性。
Achieving parallel performance and scalability involves making compromises between parallel and sequential computation. If not contained, the overheads of parallelism can easily outweigh its benefits, sometimes by orders of magnitude. Today, we expect programmers to implement this compromise by optimizing their code manually. This process is labor intensive, requires deep expertise, and reduces code quality. Recent work on heartbeat scheduling shows a promising approach that manifests the potentially vast amounts of available, latent parallelism, at a regular rate, based on even beats in time. The idea is to amortize the overheads of parallelism over the useful work performed between the beats. Heartbeat scheduling is promising in theory, but the reality is complicated: it has no known practical implementation.In this paper, we propose a practical approach to heartbeat scheduling that involves equipping the assembly language with a small set of primitives. These primitives leverage existing kernel and hardware support for interrupts to allow parallelism to remain latent, until a heartbeat, when it can be manifested with low cost. Our Task Parallel Assembly Language (TPAL) is a compact, RISC-like assembly language. We specify TPAL through an abstract machine and implement the abstract machine as compiler transformations for C/C++ code and a specialized run-time system. We present an evaluation on both the Linux and the Nautilus kernels, considering a range of heartbeat interrupt mechanisms. The evaluation shows that TPAL can dramatically reduce the overheads of parallelism without compromising scalability.
基于编译器的超细粒度抢占式并行计时
DOI: 10.1109/sc41405.2020.00057
发表时间: 2020
期刊: and Analysis (SC 2020
影响因子: --
作者:
Ghosh, Souradip;Cuevas, Michael;Campanoni, Simone;Dinda, Peter
通讯作者: Dinda, Peter
DOI: 10.1145/143095.143114
发表时间: 1992-07
期刊: --
影响因子: --
作者:
Urs Hölzle;C. Chambers;D. Ungar
通讯作者: Urs Hölzle;C. Chambers;D. Ungar
DOI: 10.1109/mascots.2018.00041
发表时间: 2018
期刊: and Simulation of Computer and Telecommunication Systems (MASCOTS
影响因子: --
作者:
Hale, Kyle;Dinda, Peter
通讯作者: Dinda, Peter
DOI: 10.1145/2754169.2754187
发表时间: 2015-06
期刊: Proceedings of the 2015 International Symposium on Memory Management
影响因子: --
作者:
Yi Lin;Kunshan Wang;S. Blackburn;Antony Hosking;Michael Norrish
通讯作者: Yi Lin;Kunshan Wang;S. Blackburn;Antony Hosking;Michael Norrish
DOI: 10.1145/1291201.1291217
发表时间: 2007
期刊: Ciba Foundation symposium
影响因子: --
作者:
Peng Li;S. Marlow;S. Jones;A. Tolmach
通讯作者: A. Tolmach