Next: Parallel Computing Environments for
Up: Message Passing Libraries in
Previous: Parallel Virtual Machine (PVM)
Contents
Message-Passing Interface (MPI) in Java
MPI [#!MPIFORUM!#,#!USINGMPI!#] is a library of functions and macros that
can be used in C, FORTRAN, and C++ programs. MPI is intended for use
in programs that exploit the existence of multiple processors by
message-passing. MPI was developed by a group of researchers from
academia, industry, and government. As such, it is one of the first
standards for programming parallel processors, and it is the first
that is based on message-passing.
MPI provides a rich set of communication libraries,
application topologies and user defined data types. The first phase of
MPI (MPI 1) was focussed on developing a message-passing standard. The
second phase of MPI effort (MPI 2) is underway adding parallel I/O,
fault tolerance, language binding for C++ and additional
communications.
Currently there are several known efforts towards the design of
MPI interfaces for Java.
- An approach comparable to the work described in this dissertation to
creating full Java MPI interfaces has been taken by University of
Westminster
[#!MINCHEV97!#,#!GETOV98!#]. In their work Java wrappers were
automatically generated from the C MPI header using Java-to-C
interface generator (JCI). This eases the implementation work, but
does not lead to a fully object-oriented API.
- MPIJ [#!MPIJ!#] is a pure Java-based subset of MPI developed at
Brigham Young University as part of the Distributed Object Group
Meta-computing Architecture (DOGMA) [#!DOGMA!#] system. MPIJ
implements a large subset of MPI functionality including
point-to-point commnunication, intra-communicator operations, groups,
user-defined reduction operations. MPIJ communications uses native
marshalling of primitive Java types. This technique allows MPIJ to
achieve communication speeds comparable to native MPI implementations.
- jmpi [#!JMPI98a!#,#!JMPI99!#] is a pure Java implementation of MPI built on
top of JPVM. Due to the additional wrapper layer to JPVM routines,
its performance is expected to be poor compared to JavaPVM.
- JMPI [#!JMPICOM!#] is a commercial effort underway at MPI
Software Technology, Inc. to develop a message-passing framework and
parallel support environment for Java. It aims to build a pure Java
version of the MPI-2 standard specialized for commercial applications.
- Finally, MPJ [#!MPJ!#] is the Java Grande Forum's MPI-like
message-passing API proposed for both Java wrappers and a pure-Java
versions. The aim is to provide an implementation of MPJ that is
maximally portable.
Next: Parallel Computing Environments for
Up: Message Passing Libraries in
Previous: Parallel Virtual Machine (PVM)
Contents
Bryan Carpenter
2004-06-09