A crucial part of mpiJava is the JNI C interface library. This library has the JNI stubs that bind the Java MPI calls to the underlying native MPI library--Figure 4 provides a simple schematic view of the software layers involved.
The development and testing of mpiJava was undertaken on various Sun and SGI UNIX platforms using MPICH. A number of problems were encountered with MPI on these systems which was generally caused by the interaction of the mpiJava JNI and the native MPI library. These problems led us to explore a number of different MPI environments, including those for NT. Currently, WMPI [21] on NT is the only environment that enables mpiJava to work consistently and efficiently. In this section of the paper we will describe the WMPI implementation of mpiJava for NT.