Vladimir Getov

Leader, Distributed and Intelligent Systems Research Group

Professor of Distributed and High-Performance Computing
Coordinator, Research Cluster on Parallel and Distributed Computing
Course Leader, MSc Computer Networks

20 Years Message Passing for Java: Developments, Achievements, and Impact

For two decades, there has been a lot of interest in using message passing in Java for parallel programming. Unfortunately, initial efforts have been hindered by lack of standard Java parallel programming APIs. To alleviate this difficulty, various early projects started the development of Java message passing systems modelled on the successful Message Passing Interface (MPI). Since official MPI bindings are defined only for C, Fortran, and C++, those early MPI-like environments for Java were still divergent. In order to address this problem and to enhance the viability of parallel programming using Java, a single MPI-like API specification and reference implementation were developed by the Message Passing for Java (MPJ) International Working Group as part of the JavaGrande Forum. However, due to the lower performance of the Java platforms at that time, the adoption of MPJ took longer and had to wait for the development and the introduction of other directly relevant areas such as Cloud and Extreme-scale Computing. Nowadays, MPJ is the predecessor of the Java binding included recently in the core distribution of the widely-used OpenMPI software environment and enables the development of very large and complex parallel and distributed applications.