The examples in this paper use the communication library called Adlib . Earlier versions of this library were developed some years ago by the current authors, as run-time systems for HPF translators. The current version is a reimplementation in Java, designed as an application level library for HPJava programming. It provides a family of collective operations that work directly with the distributed arrays of our HPspmd model.
The new version of Adlib is implemented on top of a low-level API called mpjdev , designed with the goal that it can be implemented portably on network platforms and efficiently on parallel hardware. It needs to support communication of intrinsic Java types, including primitive types, and objects. It should transfer data between the Java program and the network while keeping the overheads of the Java Native Interface as low as practical.
Unlike MPI which is intended for the application developer, mpjdev is meant for library developers. Application level communication libraries like the Java version of Adlib, or MPJ  might be implemented on top of mpjdev. The positioning of the mpjdev API is illustrated in Figure 4. The initial version of the mpjdev has been targeted to HPC platforms--implemented through a JNI interface to a subset of MPI. A Java ``New I/O'' based version, providing a more portable network implementation, is under development.