next up previous
Next: JavaMPI automatic generation of Up: Earlier Work Previous: Earlier Work

The mpiJava wrapper

The mpiJava software [3] implements a Java binding for MPI proposed late in 1997. The API is modeled as closely as practical on the C++ binding defined in the MPI 2.0 standard, specifically supporting the MPI 1.1 subset of that standard. In some cases the extra runtime information available in Java objects allows argument lists to be simplified relative to the C++ binding. In other cases restrictions of Java, especially the fact that all arguments are passed by value in Java, forces some changes to argument lists. But in general mpiJava adheres closely to earlier standards.

The implementation of mpiJava is through JNI wrappers to native MPI software. Interfacing Java to MPI is not always trivial. We often see low-level conflicts between the Java runtime and the interrupt mechanisms used in MPI implementations. The situation is improving as JDK matures, and the mpiJava software now works reliably on top of Solaris MPI implementations and various shared memory platforms. A port to Windows NT (based on WMPI) is available, and other ports are in progress.

Other work in progress includes development of demonstrator applications, and Java-specific extensions such as support for direct communication of serializable objects.


next up previous
Next: JavaMPI automatic generation of Up: Earlier Work Previous: Earlier Work
Bryan Carpenter 2004-04-24