Initially HPJava used a JNI wrapper interface to the C++ kernel of the PCRC library. The library described here borrows many ideas form the PCRC library, but for this project we rewrote high-level library from the scratch for Java. It was extended to support Java object types, to target Java based communication platforms and to use Java exception handling--making it ``safe'' for Java. The Java version of the Adlib library is developed on top of mpjdev. The mpjdev API can be implemented portably on network platforms and efficiently on parallel hardware (see Chapter 5).
The Adlib series of libraries support collective operations on distributed arrays. A call to a collective operation must be invoked simultaneously by all members of some active process group, which may or may not be the entire set of processes executing the program. Communication patterns supported include HPF/Fortran 90 intrinsics such as cshift. More importantly they include the regular-section copy operation, remap, which copies elements between shape-conforming array sections regardless of source and destination mapping. Another function, writeHalo, updates ghost areas of a distributed array. Various collective gather and scatter operations allow irregular patterns of access. The library also provides essentially all Fortran 90 arithmetic transformational functions on distributed arrays and various additional HPF library functions.