next up previous contents
Next: Java RMI Up: Parallel and Distributed Computing Previous: Parallel Virtual Machine (PVM)   Contents


MPI and MPJ

The Message-Passing Interface (MPI) [39] is the first message-passing standard for programming parallel processors. It provides a rich set of communication libraries, application topologies and user defined data types. Language-independent specification and language-specific (C and Fortran) bindings are provided in the MPI standard documents. The MPI-2 release of the standard added a C++ binding [29]. A binding of MPI for Java has not been offered and is not planned by the MPI Forum. With the evident success of Java as a programming language, and its inevitable use in connection with parallel as well as distributed computing, the absence of a well-designed language-specific binding of message-passing with Java will lead to divergent, non-portable practices. A likely prerequisite for parallel programming in a distributed environment is a good message passing API. In 1998, the Message-Passing Working Group of Java Grande Forum was formed in response to the independent development by several groups of Java APIs for MPI-like systems. Discussion of a common API for MPI-like Java libraries was an immediate goal. An initial draft for a common API specification was distributed at Supercomputing '98 [14]. Minutes of meetings that held in San Francisco, Syracuse and Supercomputing '99 are available at http://mailer.csit.fsu.edu/mailman/listinfo/java-mpi/. To avoid confusion with standards published by the original MPI Forum (which is not presently convening) the nascent API is now called MPJ. Its reference implementation can be implemented two ways. A pure Java reference implementation of that API has been proposed, and Java wrapper to a native MPI reference implementation, which will be discussed in section 3.4.1. We will discuss a proposed pure Java reference implementation in section 5.5.4.
next up previous contents
Next: Java RMI Up: Parallel and Distributed Computing Previous: Parallel Virtual Machine (PVM)   Contents
Bryan Carpenter 2004-06-09