Dynamic enforcement of determinism in a parallel scripting language
Dynamic enforcement of determinism in a parallel scripting language
复制标题
在并行脚本语言中动态执行确定性
DOI:
10.1145/2594291.2594300
复制
发表时间:
2014
期刊:
影响因子:
--
通讯作者:
M. Scott
中科院分区:
文献类型:
--
作者:
Li Lu;Weixing Ji;M. Scott
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.