The Case For Merging Execution- and Language-level Determinism with MELD

The Case For Merging Execution- and Language-level Determinism with MELD
复制标题

将执行和语言级确定性与 MELD 合并的案例

DOI:
--
复制
发表时间:
2012
期刊:
影响因子:
--
通讯作者:
L. Ceze
L. Ceze
中科院分区:
--
文献类型:
--
作者:
Joseph Devietti;D. Grossman;L. Ceze

文献摘要

被引文献

相似文献

非确定性是平行编程难度的关键因素。许多研究项目表明了如何提供确定性的并行性,但不幸的是权衡。确定性执行执行任意程序的确定性,但运行时的成本很高,而确定性语言在静态上执行确定性(没有运行时开销),但仅适用于在其静态类型系统中表达的fork-join程序。融合了这些方法。我们向确定性的执行系统解释了将确定性语言巧妙地集成到确定性的执行系统中的要求,并描述一个基于预选赛的简单类型检查器,该检查器可确保用确定性语言编写的代码隔离。我们还扩展了融合以纳入非确定性操作的情况,而不会损害其余程序的决定论。我们对Splash2和Parsec套件的基准测试的实验表明,少数注释可以加速这些程序的确定性版本的性能,而不是2-6倍。
Nondeterminism is a key contributor to the difficulty of parallel programming. Many research projects have shown how to provide deterministic parallelism, but with unfortunate trade-offs. Deterministic execution enforces determinism for arbitrary programs but with significant runtime cost, while deterministic languages enforce determinism statically (without runtime overhead) but only for fork-join programs expressible in their static type systems. MELD unifies these approaches. We explain the requirements for soundly integrating a deterministic language into a deterministic execution system, and describe a simple qualifier-based type checker that ensures isolation for code written in a deterministic language. We also extend MELD to incorporate nondeterministic operations without compromising the determinism of the rest of the program. Our experiments with benchmarks from the SPLASH2 and PARSEC suites show that a small number of annotations can accelerate the performance of deterministic versions of these programs by 2-6x.