next up previous contents
Next: MPI and MPJ Up: Parallel and Distributed Computing Previous: Parallel and Distributed Computing   Contents

Parallel Virtual Machine (PVM) in Java

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 up previous contents
Next: MPI and MPJ Up: Parallel and Distributed Computing Previous: Parallel and Distributed Computing   Contents
Bryan Carpenter 2004-06-09