sponsors
usenix conference policies
Parallel Closures: A New Twist on an Old Idea
Nicholas D. Matsakis, Mozilla Research
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.
Open Access Media
USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.
author = {Nicholas D. Matsakis},
title = {Parallel Closures: A New Twist on an Old Idea},
booktitle = {4th USENIX Workshop on Hot Topics in Parallelism (HotPar 12)},
year = {2012},
address = {Berkeley, CA},
url = {https://www.usenix.org/conference/hotpar12/workshop-program/presentation/matsakis},
publisher = {USENIX Association},
month = jun
}
connect with us