Computer scientists at the University of Illinois have developed extensions to Java intended to address the tough issue of parallel application development -- and they are ready to do the same for C++.
Called Deterministic Parallel Java, the open source technology assists developers in halting parallel bugs, said Vikram Adve, computer science professor at the university. Development of parallel applications is becoming more prominent with the recent proliferation of multicore processors.
"Virtually all high-performance applications are going to need to be parallel in the future. What this tries to do is make it much easier to write correct parallel applications that don't have any parallel bugs," Adve said in an interview this week.
Deterministic Parallel Java features a set of extensions offered in the form of a compiler. A runtime and related materials have been developed as well. Accessible at the University of Illinois' website, Deterministic Parallel Java was developed at the school's Universal Parallel Computing Research Center.
Although announced just this week, Deterministic Parallel Java actually was released in early July. Plans call for fashioning a version for C++ in the first half of next year, to be called Deterministic Parallel C++.
The technology guarantees "deterministic semantics" without runtime checks for general-purpose, object-oriented programs, the university said. With deterministic semantics, a program given a particular input will always produce the same output for that particular input, said Adve. While this is routinely expected in sequential programs, it can be difficult to guarantee in parallel programs, he said.
With parallel programs, multiple operations are executing in parallel and exchanging data, Adve explained. When data is exchanged, synchronization can become a problem if programmers are not careful, he said.
"What [Deterministic Parallel Java] does is it checks at compile time. It checks at the time programmers are the developing the software whether the software is guaranteed to be deterministic or not," Adve said.
The university's technology can benefit high-performance parallel applications in areas such as financial analysis or biotechnology, said Adve.
Thus far, Deterministic Parallel Java has had some downloads, but the university does not have any details yet on what type of results have been produced. Developers of the technology also have not yet talked to commercial entities such as Oracle or IBM about the technology.
Deterministic Paralell Java can work with recent versions of Java, up to Java Platform, Enterprise Edition 6 as well as with standard editions of Java.