Next: MPI and MPJ
Up: Parallel and Distributed Computing
Previous: Parallel and Distributed Computing
Contents
Communication in parallel programming significantly affects the efficiency
of distributed systems. We need to find a way to move data from one local
memory to another because a distributed memory system does not share one
common global memory. Message passing is very suitable to this task via
send/receive API calls which must be written into the application program
or used by some higher-level software. To achieve increased bandwidth, reduced
latency, and better reliability within workstation clusters using Java,
several projects are under way.
PVM [30], developed at Oak Ridge National Laboratory, provides
a mechanism that
enables a collection of heterogeneous networked computing systems to be used
cooperatively for concurrent or parallel computation. This system can solve
large computational problems effectively using the aggregate power and memory
of many computers. The PVM system consists of two parts: a daemon,
pvmd, and a library of PVM. Any user with a valid login can install a
daemon on a computer, adding it to a virtual machine.
The PVM library contains a repertoire
of primitives that are needed for cooperation between tasks of an application:
user-callable routines that include message passing, spawning
processes, coordinating tasks, and modifying the virtual machine. C, C++, and
Fortran languages are currently supported by the PVM system.
JavaPVM [34] (or jPVM), which is an interface written using
the Java native methods capability, and JPVM [26], which is a
pure Java implementation of PVM are two groups working on making PVM support
for programs written in Java. Since JavaPVM is using native methods,
cross-platform portability is limited. JPVM is better matched to Java
programming styles, much simpler to maintain across
heterogeneous machines compared to JavaPVM. The performance of JavaPVM is
better compared to JPVM. Communication benchmarks of native PVM, JavaPVM, and
JPVM are reported in [57].
Next: MPI and MPJ
Up: Parallel and Distributed Computing
Previous: Parallel and Distributed Computing
Contents
Bryan Carpenter
2004-06-09