学位论文详细信息
An effect system and language for deterministic-by-default parallel programming
parallel;parallelism;fork-join;programming languages;determinism;nondeterminism;regions;effects;effect systems;effect checking;strong isolation;atomicity;transactional memory;atomic sections;data race freedom;frameworks
Bocchino, Robert L., Jr.
关键词: parallel;    parallelism;    fork-join;    programming languages;    determinism;    nondeterminism;    regions;    effects;    effect systems;    effect checking;    strong isolation;    atomicity;    transactional memory;    atomic sections;    data race freedom;    frameworks;   
Others  :  https://www.ideals.illinois.edu/bitstream/handle/2142/18416/Bocchino_Robert.pdf?sequence=1&isAllowed=y
美国|英语
来源: The Illinois Digital Environment for Access to Learning and Scholarship
PDF
【 摘 要 】
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.© 2010 Robert L. Bocchino Jr.Chapters 3 and 5 are derived from work published in ACM conference proceedings (OOPSLA 2009 and POPL 2011).As to that work only, the following notice applies:Copyright © 2009, 2011 by the Association for Computing achinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept., ACM, Inc., fax +1 (212) 869-0481, or permissions@acm.org.
【 预 览 】
附件列表
Files Size Format View
An effect system and language for deterministic-by-default parallel programming 1148KB PDF download
  文献评价指标  
  下载次数:14次 浏览次数:44次