Channels ▼

Jonathan Erickson

Dr. Dobb's Bloggers

Deterministic Parallel Java

October 13, 2010

Ensuring that Java programmers aren't left out in the cold, parallel programming wise, computer scientists have developed Deterministic Parallel Java, a parallel programming language that guarantees deterministic semantics without run-time checks for general-purpose, object-oriented programs.

Researchers at the Universal Parallel Computing Research Center at the University of Illinois claim that Deterministic Parallel Java (DPJ) is the first language to use compile-time type checking for parallel operations on arrays of references ("pointers") to objects, and the first language to use regions and effects for flexible, nested data structures. On top of this, they claims that DPJ is the first language to guarantee deterministic use of object-oriented parallel frameworks, and the first language to allow safe mixing of deterministic and non-deterministic code.

DPJ is intended to simplify debugging and testing of parallel software as all potential data races are caught at compile-time. Because DPJ programs have obvious sequential semantics, all debugging and testing of DPJ code can happen essentially like that for sequential programs. Maintenance becomes easier as DPJ encodes the programmer's knowledge of parallel data sharing patterns in DPJ annotations — simplifying the tasks of understanding, modifying, and extending parallel DPJ software. Moreover, thanks to the same program annotations, each function or class can be understood and parallelized in a modular fashion, without knowing internal parallelism or synchronization details of other functions or classes.

The ultimate goal of professor Vikram Adve and Ph.D. student Robert Bocchino is to make parallel programming easier, which is why they set out to provide deterministic-by-default semantics for an object-oriented, imperative parallel language, using primarily compile-time checking. What they ended up with is a safe and modular parallel language that helps developers port (parts of) sequential Java applications to run on multicore systems. It also helps them rewrite (parts of) parallel Java applications to simplify debugging, testing, and long-term maintenance. DPJ-ported parallel code can coexist with ordinary Java code within the same application, so that programs can be incrementally ported to DPJ.

Moreover, Adve is working with Intel to define a similar set of extensions to C++ (DPC++), which can be used to check similar properties for existing programming models such as Cilk, OpenMP, and Threading Building Blocks (TBB).

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.