A Buffering Layer to Support Derived Types and Proprietary Networks for Java HPC


Mark Baker
Bryan Carpenter
Aamir Shafi


MPJ Express is our implementation of MPI-like bindings
for Java. In this paper we discuss our intermediate buffering layer
that makes use of the so-called direct byte buffers introduced in the
Java New I/O package. The purpose of this layer is to support the implementation of
derived datatypes. MPJ Express is the first Java messaging library that
implements this feature using pure Java. In addition, this buffering
layer allows efficient implementation of communication devices based on
proprietary networks such as Myrinet. In this paper we evaluate the performance of our
buffering layer and demonstrate the usefulness of direct byte buffers.
Also, we evaluate the performance of MPJ Express against other messaging
systems using Myrinet and show that our buffering layer has made it possible
to avoid the overheads suffered by other Java systems such as mpiJava
that relies on the Java Native Interface.


Special Issue