arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv 1809.07684cs.DC
收藏

顺序程序的自动并行化

Automatic Parallelization of Sequential Programs

Peter Kraft, Amos Waterland, Daniel Y Fu, Anitha Gollamudi, Shai Szulanski, Margo Seltzer

摘要:

自动可扩展计算(ASC)的先前工作表明,通过构建整个程序执行的模型,使用该模型预测未来的计算,然后推测性地执行这些未来的计算,可以并行化顺序计算。虽然之前的工作演示了扩展,但它没有演示加速,因为它完全是在仿真中运行的。我们将此视为一个挑战,构建一个体现ASC思想的硬件原型,但可以在更广泛的程序上工作,并在硬件上本地运行。由此产生的系统是类似的精神,原来的工作,但不同的几乎在每一个方面。我们提出了一个实现的ASC架构,原生运行在x86硬件上,并实现了近线性加速高达44核(我们的测试平台的大小)的几类程序,如计算内核,地图风格的程序,矩阵运算。我们观察到,程序要么是完全可预测的,达到近乎完美的预测精度,或完全不可预测的,因此不适合通过ASC类技术进行扩展。我们还发现,在大多数情况下,加速仅受实现细节的限制:依赖跟踪基础设施的开销和对大型状态空间的操作。我们能够自动并行化程序与链接的数据结构,不服从其他形式的自动并行化。

英文摘要:

Prior work on Automatically Scalable Computation (ASC) suggests that it is possible to parallelize sequential computation by building a model of whole-program execution, using that model to predict future computations, and then speculatively executing those future computations. Although that prior work demonstrated scaling, it did not demonstrate speedup, because it ran entirely in emulation. We took this as a challenge to construct a hardware prototype that embodies the ideas of ASC, but works on a broader range of programs and runs natively on hardware. The resulting system is similar in spirit to the original work, but differs in practically every respect. We present an implementation of the ASC architecture that runs natively on x86 hardware and achieves near-linear speedup up to 44-cores (the size of our test platform) for several classes of programs, such as computational kernels, map-style programs, and matrix operations. We observe that programs are either completely predictable, achieving near-perfect predictive accuracy, or totally unpredictable, and therefore not amenable to scaling via ASC-like techniques. We also find that in most cases, speedup is limited only by implementation details: the overhead of our dependency tracking infrastructure and the manipulation of large state spaces. We are able to automatically parallelize programs with linked data structures that are not amenable to other forms of automatic parallelization.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑