next up previous contents
Next: Advanced Message Passing Infrastructure Up: Proposed joint efforts Previous: Proposed joint efforts   Contents

Java-MPI - API Specification

The MPI standard is explicitly object-based. The C and Fortran bindings rely on ``opaque objects'' that can be manipulated only by acquiring object handles from constructor functions, and passing the handles to suitable functions in the library. The C++ binding specified in the MPI-2 standard collects these objects into suitable class hierarchies and defines most of the library functions as class member functions. The Java-MPI API specification follows this model, lifting the structure of its class hierarchy directly from the C++ binding.

The immediate infrastructure to be provided builds literally on the MPI-1 infrastructure offered by the MPI Forum, together with language bindings motivated by the MPI-2 forum's C++ bindings. The purpose of that effort is to provide an immediate, ad hoc standardization for common message passing programs in Java, as well as to provide a basis for conversion between C, C++, Fortran77, and Java. Eventually, support for aspects of MPI-2 belong under this category as well, particularly dynamic process management, but not necessarily all of MPI-2, given its spartan implementation in the non-Java space.

Figure 1: Principal classes of Java-MPI
\begin{figure}\centerline{\psfig
{figure=mpiJava.eps,width=4.5in}}\end{figure}

The major classes of Java-MPI are illustrated in Figure 1. The class MPI only has static members. It acts as a module containing global services, such as initialization of MPI, and many global constants including the default communicator COMM_WORLD. The most important class in the package is the communicator class Comm. All communication functions in Java-MPI are members of Comm or its subclasses. As usual in MPI, a communicator stands for a ``collective object'' logically shared by a group of processors. The processes communicate, typically by addressing messages to their peers through the common communicator. Another class that is important for the Java-MPI specification is the Datatype class. This describes the type of the elements in the message buffers passed to send, receive, and all other communication functions.

The complete draft Java-MPI API specification is included as an appendix to this document.


next up previous contents
Next: Advanced Message Passing Infrastructure Up: Proposed joint efforts Previous: Proposed joint efforts   Contents
Bryan Carpenter 2002-07-12