New Deterministic Parallel Java Project
Researchers look to leverage multicore and parallel systems with new parallel implementation of Java.
Researchers at the University of Illinois’ Universal Parallel
Computing Research Centre are developing a parallel
implementation of Java.
The University of Illinois at Urbana-Champaign have launched
their Deterministic Parallel Java (DPJ) implementation project in
an effort to leverage multicore and parallel systems, and to “make
parallelism easy.” It aims to simplify the debugging and testing of
parallel software by catching potential data races at
In a press release, the spokeswoman for the Universal
Parallel Computing Research Centre (UPCRC) at the University of
Illinois at Urbana-Champaign, claimed this is the first language to
guarantee deterministic (where a program produces the same visible
output for a given input, in all executions) semantics without
run-time checks for general-purpose, object-oriented programs. It
is also the first to use compile-time type checking or parallel
operations on arrays of references to objects. It is also the first
language to use regions and effects for nested data structures.
Looking to future releases, she predicted it would be the first
language to guarantee deterministic use of object-oriented parallel
frameworks, and allow safe mixing of deterministic and
The DPJ implementation will help developers port segments of
sequential Java applications to run on multicore systems, and
rewrite parts of parallel Java apps for simplifying the debugging,
testing and long-term maintenance. The “near-term goal” is for DPJ
to provide a test bed for further research into
deterministic-by-default programming models. The current design,
features fork-join parallelism, and determinism checking based on
the ‘region’ concept, where the programmer partitions the heap into
regions by annotating classes. DPJ supports concurrent collections
and object-oriented parallel frameworks. The team have also
designed a DPJizer tool to automatically infer method effect
summaries, based on the region information.
A DPJ-to-Java compiler based on the javac compiler is available
now. Version 1.0 of DPJ is also available for download. This
release implements the core deterministic language, and has been
tested on Linux and Mac OS X.
The project is funded by the National Science Foundation, Intel