首页> 外文OA文献 >An effect system and language for deterministic-by-default parallel programming
【2h】

An effect system and language for deterministic-by-default parallel programming

机译:用于默认确定性并行编程的效果系统和语言

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

This thesis presents a new, Java-based object-oriented parallellanguage called Deterministic Parallel Java (DPJ). DPJ uses a novel effect system to guarantee determinism by default. That means that parallel programs are guaranteed to execute deterministically unless nondeterminism is explicitly requested. This is in contrast to the shared-memory models in widespread use today, such as threads and locks (including threads in ordinary Java). Thosemodels are inherently nondeterministic, do not provide any way to check or enforce that a computation is deterministic, and can even have unintended data races, which can lead to strange and unexpected behaviors. Because deterministic programs are much easier to reason about than arbitrary parallel code, determinism by default simplifiesparallel programming.This thesis makes several broad contributions to the state of the art in programming languages and effect systems. First, itpresents a comprehensive research agenda for achieving determinism bydefault in parallel languages with reference aliasing and sharedmutable state. It argues that an object-oriented effect system is agood approach to managing shared memory conflicts. It also raisesseveral technical challenges, many of which are taken up in the restof the thesis.Second, this thesis presents an effect system and language fordeterministic parallel programming using a fork-join model of parallelcontrol. With simple modular checking, and with no runtime checking overhead, the effect system guarantees at compile time that there are no conflicting memory accesses between any pairs of parallel tasks. The effect system supports several important patterns of deterministicparallelism that previous systems cannot express. We describe theeffect system and language both formally and informally, and provesoundness for the formal language. We also describe our evaluationshowing that the language can express a range of parallel programming patterns with good performance.Third, this thesis extends the effect system and language fordeterminism to support a controlled form of nondeterminism. Conflicting accesses are allowed only for an explicitly identifiednondeterministic parallel construct, so the language is deterministic by default. A transactional runtime provides isolation for atomicstatements, while the extended effect system provides strongercompile-time safety guarantees than any system we know of. Inaddition to determinism by default, the language guarantees racefreedom; strong isolation for atomic statements even if the runtime guarantees only weak isolation; and an elegant way ofcomposing deterministic and nondeterministic operations that preserves local reasoning about deterministic operations. Again we give an informal treatment, a formal treatment, and soundness proofs. We describe an evaluation showing that the extended language can express realistic nondeterministic algorithms in a natural way, with reasonable performance given the transactional runtime we used. Further, by eliminating unnecessary synchronization, the effect systemenables a significant reduction in the software runtime overhead.Fourth, this thesis describes programming techniques and further extensions to the effect system for supporting object-oriented parallel frameworks. Frameworks represent an important tool for parallel programming in their own right. They can also express some operations that the language and effect system alone cannot, forexample pipeline parallelism. We show how to write a framework APIusing the DPJ effect system so that the framework writer can guaranteecorrectness properties to the user, assuming the user's code passesthe DPJ type checker. We also show how to extend the DPJ effectsystem to add generic types and effects, making the frameworks moregeneral and useful. Finally, we state the requirements for a correct framework implementation. These requirements may be checked with a combination of DPJ's effect system and external reasoning. Again we give an informal treatment, a formal treatment, and soundness proofs. We also describe the results of an evaluation showing that the techniques described can express realistic frameworks and parallelalgorithms.
机译:本文提出了一种新的基于Java的面向对象的并行语言,称为确定性并行Java(DPJ)。 DPJ默认情况下使用新颖的效果系统来确保确定性。这意味着,除非明确要求非确定性,否则保证并行程序可以确定性地执行。这与当今广泛使用的共享内存模型相反,例如线程和锁(包括普通Java中的线程)。这些模型本质上是不确定性的,不提供任何方法来检查或强制执行计算是确定性的,甚至可能具有意料之外的数据竞争,这可能导致奇怪和意外的行为。由于确定性程序比任意并行代码更易于推理,因此默认情况下,确定性简化了并行编程。本文为编程语言和效果系统的发展做出了许多广泛的贡献。首先,它提出了一个全面的研究议程,目的是在具有引用别名和共享可变状态的并行语言中默认实现确定性。它认为面向对象的效果系统是管理共享内存冲突的好方法。其次,本文提出了一个效果系统和一种语言,用于使用并行控制的fork-join模型进行确定性的并行编程。通过简单的模块化检查,并且没有运行时检查开销,效果系统可以保证在编译时任何并行任务对之间都没有冲突的内存访问。效果系统支持先前系统无法表达的几种重要的确定性并行模式。我们正式和非正式地描述了效果系统和语言,并证明了正式语言的可靠性。我们还描述了我们的评估,表明该语言可以表达一系列具有良好性能的并行编程模式。第三,本文扩展了效果系统和语言确定性,以支持非确定性的受控形式。冲突访问仅允许用于明确标识的非确定性并行构造,因此默认情况下该语言是确定性的。事务性运行时为原子状态语句提供隔离,而扩展效果系统提供的编译时安全性保证比我们所知道的任何系统都要强。除了默认情况下的确定性外,该语言还保证了种族自由。即使运行时仅保证弱隔离,也可以对原子语句进行强隔离;以及一种构成确定性和非确定性运算的优雅方式,可以保留有关确定性运算的局部推理。我们再次给出非正式的处理,正式的处理和健全性证明。我们描述了一个评估,该评估表明扩展语言可以自然地表达现实的不确定性算法,并在给定使用事务性运行时的情况下具有合理的性能。此外,通过消除不必要的同步,效果系统可以大大减少软件运行时的开销。第四,本文介绍了编程技术以及对效果系统的进一步扩展,以支持面向对象的并行框架。框架本身就是并行编程的重要工具。他们还可以表达某些语言和效果系统无法完成的操作,例如管道并行性。我们展示了如何使用DPJ效果系统编写框架API,以便假设用户的代码通过了DPJ类型检查器,框架编写者可以向用户保证正确性。我们还将展示如何扩展DPJ效果系统以添加通用类型和效果,从而使框架更加通用和有用。最后,我们陈述了正确实施框架的要求。这些要求可以结合DPJ的效果系统和外部推理进行检查。我们再次给出非正式的处理,正式的处理和健全性证明。我们还描述了评估结果,该评估表明所描述的技术可以表达现实的框架和并行算法。

著录项

  • 作者

    Bocchino Robert L. Jr.;

  • 作者单位
  • 年度 2010
  • 总页数
  • 原文格式 PDF
  • 正文语种 {"code":"en","name":"English","id":9}
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号