Title
Parallel closures: a new twist on an old idea
Abstract
This paper presents a lightweight task framework and accompanying type system that statically guarantee deterministic execution. The framework is based on the familiar model of fork-join parallelism, but with two important twists. First, child tasks do not begin execution immediately upon creation, but rather they are both scheduled and joined as one atomic action; this change prevents the parent task from racing with its children. Second, the body of a child task is specified as a parallel closure. Parallel closures are a novel variation on traditional closures in which the data inherited from the environment is read-only. Parallel closures have the important property that they can be executed in parallel with one another without creating data races, even if they share the same environment. We also have a controlled means to grant mutable access to data in the environment where necessary. We have implemented a prototype of our framework in Java. The prototype includes a typechecker that enforces the constraint that parallel closures cannot modify their environment. The paper describes how the prototype has been used to implement a number of realistic examples and also explains how parallel closures can support the creation of structured parallel programming abstractions.
Year
Venue
Keywords
2012
HotPar
important property,important twist,new twist,accompanying type system,old idea,child task,structured parallel programming abstraction,parent task,lightweight task framework,parallel closure,data race,statically guarantee deterministic execution
Field
DocType
Citations 
Closure (computer programming),Abstraction,Programming language,Computer science,Atomic actions,Java,Data access,Distributed computing
Conference
9
PageRank 
References 
Authors
0.55
27
1
Name
Order
Citations
PageRank
Nicholas D. Matsakis1946.88