The past several years have witnessed an ever-increasing acceptance and adoption of parallel processing, both for high-performance scientific computing as well as for more general-purpose applications. Furthermore, the message-passing model appears to be gaining predominance as the paradigm of choice, in terms of multiprocessor architectures as well as applications, languages, and software systems for message passing support.
PVM (Parallel Virtual Machine) [5] was produced by the Heterogeneous Network Project - a collaborative effort by researchers at Oak Ridge National Laboratory, the University of Tennessee, Emory University, and Carnegie Mellon University specifically to facilitate heterogeneous parallel computing. PVM is a software system that allows programmers to utilize a network of heterogeneous computers, some of which may be MPPs, as a single multicomputer. This system has become popular both for developing parallel applications and as an infrastructure for developing more advanced parallel programming tools.
Version 3 of the PVM system is composed of two parts. The first part is a daemon, called pvmd3 that resides on all the computers making up the virtual computer. (An example of a daemon program is sendmail, which handles all the incoming and outgoing electronic mail on a Unix system.) pvmd3 is designed so that any user with a valid login can install this daemon on a machine. When a user wishes to run a PVM application, he executes pvmd3 on one of the computers which in turn starts up pvmd3 on each of the computers making up the user-defined virtual machine. A PVM application can then be started from a Unix prompt on any of these computers.
The second part of the system is a library of PVM interface routines. This library contains user-callable routines for passing messages, spawning tasks, coordinating those tasks, and modifying the virtual machine. Application programs must be linked with this library to use PVM.
In this paper we describe new features of the latest version of PVM (3.3) and present an overview of future directions we are exploring with respect to PVM.