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. Matsakis | 1 | 94 | 6.88 |