A Language for Deterministic-by-Default Parallel Programming ⋆

semanticscholar(2010)

引用 1|浏览0
暂无评分
摘要
When using today’s common shared-memory parallel programming models, subtle errors can lead to unintended nondeterministic behavior and bugs that appear only under certain thread interleavings. In contrast, we believe that a programming model should guarantee deterministic behavior unless the programmer specifically calls for nondeterminism. We describe our implementation of such a deterministic-bydefault parallel programming language. Deterministic Parallel Java (DPJ) is an extension to Java that uses a region-based type and effect system to guarantee deterministic parallel semantics through static checking. Data in the heap is partitioned into regions, so the compiler can calculate the read and write effects of each variable access in terms of regions. Methods are annotated with effect summaries, so the effects of a full program can be checked with a modular analysis. Using this system, the compiler can verify that the effects of the different operations within each parallel region are noninterfering. The DPJ type system includes several novel features to enable expressive support for widely used parallel idioms. We describe an experimental evaluation of DPJ that shows it can express a wide range of realistic parallel programs with good performance. We also describe a method for inferring method effect summaries, which can ease the burden of writing annotations. In addition, we briefly discuss several areas of ongoing and future work in the DPJ project.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要