Dynamic enforcement of determinism in a parallel scripting language

Dynamic enforcement of determinism in a parallel scripting language
复制标题

在并行脚本语言中动态执行确定性

DOI:
10.1145/2594291.2594300
复制
发表时间:
2014
期刊:
Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子:
--
通讯作者:
M. Scott
M. Scott
中科院分区:
--
文献类型:
--
作者:
Li Lu;Weixing Ji;M. Scott

文献摘要

被引文献

相似文献

确定性是对并行计划的吸引力,因为它简化了理解,推理和调试。它在动态(脚本)语言中特别有吸引力,在动态(脚本)语言中,易于编程是一个主要的设计目标。某些现有的平行语言使用类型系统在静态上执行确定性,但这对于动态语言通常不实用。在本文中,我们描述了如何获得确定性的 - 以及动态执行/验证 - 用于对平行脚本语言的适当扩展。具体而言,我们介绍了确定性并行红宝石(DPR)的结构,以及一个运行时系统(TARDIS),该系统验证了确定性所需的属性,包括正确使用减少和交换性运算符,以及相互独立性(数据种族自由度)并发任务。实验结果证实,DPR可以在多功能机器上提供可扩展的性能,而TARDIS的开销足以进行实际测试。特别是,TARDIS显着优于具有可比功能的替代数据竞争检测器。我们以对确定论的动态执行中未来的方向进行讨论。
Determinism is an appealing property for parallel programs, as it simplifies understanding, reasoning and debugging. It is particularly appealing in dynamic (scripting) languages, where ease of programming is a dominant design goal. Some existing parallel languages use the type system to enforce determinism statically, but this is not generally practical for dynamic languages. In this paper, we describe how determinism can be obtained---and dynamically enforced/verified---for appropriate extensions to a parallel scripting language. Specifically, we introduce the constructs of Deterministic Parallel Ruby (DPR), together with a run-time system (Tardis) that verifies properties required for determinism, including correct usage of reductions and commutative operators, and the mutual independence (data-race freedom) of concurrent tasks. Experimental results confirm that DPR can provide scalable performance on multicore machines and that the overhead of Tardis is low enough for practical testing. In particular, Tardis significantly outperforms alternative data-race detectors with comparable functionality. We conclude with a discussion of future directions in the dynamic enforcement of determinism.