Jump to content

Deterministic Parallel Java

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Esfand30 (talk | contribs) at 04:22, 19 February 2009. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Deterministic Parallel Java (DPJ) extends the sequential subset of the Java programming language with parallel constructs that provide a deterministic programming model for object-oriented languages. The language extensions define a type system that a programmer (or interactive porting tool) can use to annotate Java code with type information, and a compiler can use to type-check that a DPJ program has deterministic semantics, i.e., produces the same visible output for a given input, in all executions. Parallel algorithms that cannot be expressed entirely in the statically checked type system require run-time mechanisms to enforce determinism: two key research goals are to maximize the expressivity of the type system and to minimize the overhead of the “fallback” run-time techniques. With minor modifications, language extensions should be applicable to other base OO languages, such as C++ and C#.

This work is funded by NSF grants CSA 07-02724 and CNS 07-20772, and by Intel and Microsoft through the UPCRC Illinois.