Presently there is no complete implementation of the draft specification. The mpiJava wrappers rely on the availability of platform-dependent native MPI implementation for the target computer. Presumably this has not facilitated its wider uptake. On several occasions in the development of mpiJava we saw conflicts between the JVM environment and the native MPI runtime behaviour. The situation has improved, and mpiJava now runs on various combinations of JVM and MPI implementation.
Some problems remain.
A persistent one relates to concurrent operations involving the same Java array. These ought to be allowed if the concurrent operations refer to disjoint sections of the array. But the way the Java Native Interface mechanism interacts with the data in Java arrays means that unexpected results may occur. Ideally, the first two problems would be addressed by the providers of the original native MPI package. We envisage that they could provide a Java interface bundled with their C and Fortran bindings, avoiding the the headache of separately installing the native software and Java wrapper.