next up previous
Next: The MPJ API Specification Up: Earlier Work Previous: JavaMPI automatic generation of

MPIJ--MPI-like implementation in pure Java

MPIJ is a completely Java-based implementation of MPI which runs as part of the Distributed Object Group Metacomputing Architecture (DOGMA) system. MPIJ implements a large subset of MPI-like functionality including all modes of point-to-point communication, intra-communicator operations, groups, and user-defined reduction operations. Notable capabilities that are not yet implemented include process topologies, inter-communicators, and user-defined data types but these are arguably needed for legacy code only.

MPIJ communication uses native marshaling of primitive Java types. On Win32 platforms this technique allows MPIJ to achieve communication speeds comparable to, and in some instances exceeding, native MPI implementations [13]. Our performance evaluation experiments show that Java communication speed would be greatly increased if native marshaling were a core Java function.

A key feature of a pure Java MPI-like implementation is the ability to function on applet-based nodes. In MPIJ, this provides a flexible method for creating clusters of workstations without the need to install any system or user software related to the message-passing environment on the participating nodes.

Bryan Carpenter 2004-04-24