MSL: A Synthesis Enabled Language for Distributed Implementations

MSL: A Synthesis Enabled Language for Distributed Implementations
复制标题

MSL:一种用于分布式实现的综合语言

DOI:
--
复制
发表时间:
2014
期刊:
International Conference for High Performance Computing, Networking, Storage and Analysis
影响因子:
--
通讯作者:
Armando Solar
Armando Solar
中科院分区:
--
文献类型:
--
作者:
Zhilei Xu;Shoaib Kamil;Armando Solar

文献摘要

被引文献

相似文献

本文演示了生成式编程和软件合成的思想如何帮助支持大容量同步分布式内存内核的开发。这些想法是在一种名为MSL的新语言中实现的,MSL是一种类似c的语言,它将合成特性与用于数组操作的高级符号和批量同步并行性结合起来,以简化合成所需的语义分析。本文表明,通过利用这些高级符号,可以将MSL基础上的合成和自动bug查找技术扩展到现实的计算内核。具体来说,我们通过案例研究来演示该方法,这些案例研究实现了NAS并行基准测试中的非平凡分布式内核(包括规则的和不规则的)。我们表明,我们的方法可以从这些基准测试中自动推断出许多具有挑战性的细节,并且可以在类似的内核之间重用高级实现思想。我们还演示了这些高级符号很容易映射到低级C代码,并展示了生成的代码的性能与手写Fortran的性能相匹配。
This paper demonstrates how ideas from generative programming and software synthesis can help support the development of bulk-synchronous distributed memory kernels. These ideas are realized in a new language called MSL, a C-like language that combines synthesis features with high level notations for array manipulation and bulk-synchronous parallelism to simplify the semantic analysis required for synthesis. The paper shows that by leveraging these high level notations, it is possible to scale the synthesis and automated bug-finding technologies that underlie MSL to realistic computational kernels. Specifically, we demonstrate the methodology through case studies implementing non-trivial distributed kernels -- both regular and irregular -- from the NAS parallel benchmarks. We show that our approach can automatically infer many challenging details from these benchmarks and can enable high level implementation ideas to be reused between similar kernels. We also demonstrate that these high level notations map easily to low level C code and show that the performance of this generated code matches that of handwritten Fortran.