Affiliation:
1. University of Illinois at Urbana-Champaign, Urbana, IL, USA
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).
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference49 articles.
1. http://dpj.cs.uiuc.edu. http://dpj.cs.uiuc.edu.
2. http://gee.cs.oswego.edu/dl/concurrency-interest. http://gee.cs.oswego.edu/dl/concurrency-interest.
3. Types for safe locking
4. Commutativity analysis for software parallelization
5. Serialization sets
Cited by
44 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献