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
中科院分区:
文献类型:
--
作者:
Joseph Devietti;D. Grossman;L. Ceze
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.