@inproceedings{b20a1ff73be948de9cb3566ebe0f5665,
title = "A type and effect system for deterministic parallel Java",
abstract = "Today's shared-memory parallel programming models are complex and error-prone.While many parallel programs are intended to be deterministic, unanticipated thread interleavings can lead to subtle bugs and nondeterministic semantics. In this paper, we demonstrate that a practical type and effect system can simplify parallel programming by guaranteeing deterministic semantics with modular, compile-time type checking even in a rich, concurrent object-oriented language such as Java. We describe an object-oriented type and effect system that provides several new capabilities over previous systems for expressing deterministic parallel algorithms.We also describe a language called Deterministic Parallel Java (DPJ) that incorporates the new type system features, and we show that a core subset of DPJ is sound. We describe an experimental validation showing thatDPJ can express a wide range of realistic parallel programs; that the new type system features are useful for such programs; and that the parallel programs exhibit good performance gains (coming close to or beating equivalent, nondeterministic multithreaded programs where those are available).",
keywords = "Commutativity, Determinism, Deterministic parallelism, Effect systems, Effects",
author = "Bocchino, {Robert L.} and Adve, {Vikram S.} and Danny Dig and Adve, {Sarita V.} and Stephen Heumann and Rakesh Komuravelli and Jeffrey Overbey and Patrick Simmons and Hyojin Sung and Mohsen Vakilian",
year = "2009",
doi = "10.1145/1640089.1640097",
language = "English (US)",
isbn = "9781605587349",
series = "Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA",
pages = "97--116",
booktitle = "OOPSLA 2009 - 24th Annual ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, OOPSLA 2009",
note = "OOPSLA 2009 - 24th Annual ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, OOPSLA 2009 ; Conference date: 25-10-2009 Through 29-10-2009",
}