The PVM software enables a user who holds accounts on several networked computers to write applications in which the collection of computers perform parts of the application in parallel. This group of computers can be considered, for the purposes of programming, as a virtual machine (VM). All that is required of the computers is that they can communicate with each other over (at least) a TCP/IP connection. If all of these machines are part of the Internet, then this requirement is already satisfied. Each computer on the virtual machine will sometimes be referred to as a node and sometimes as a host. These two terms will be used interchangibly in this manual.
The VM can consist of nodes that are identical. For example, an IBM SP/2 computer consists of a number of RS/6000 processors whose communications hardware is much faster than the ordinary TCP/IP links on the Internet. Such a machine will be called a homogeneous virtual machine. Other virtual machines can consist of many different processor types. These virtual machines will be referred to as heterogeneous virtual machines. PADE is most effective in aiding parallel development on the latter type of virtual machine.
An example VM could consist of the following machines:
A working PVM application on a virtual machine several consists of two parts. First, the PVM software must be installed on each of the computers comprising the VM. How this is done is well beyond the scope of this manual and will hereafter be assumed to have already been done. The basic software consists of two programs the PVM daemon and the PVM console. The PVM daemon can be started with a hostfile which is a file containing a list of the computers that make up the VM. The PVM daemon will then start similar daemons on the other hosts listed in this file. The PVM console is an interactive program which enables the user to (among other things) add hosts to, monitor the status of, and list the jobs running on the VM.
The second item needed to create a working PVM application is a set of files containing source code (written in C or FORTRAN) that has been instrumented with PVM calls. Some subset of these source files will be compiled on a given host of the VM to create a binary that is the component of the entire PVM program for that host. The subset of files needed to create this executable may vary from host-to-host. This may be the case for several reasons some of which include
An example parallel program is provided with the standard PADE distribution and is a variation on one of the examples provided with the PVM distribution. This example program will be used extensively in the PADE tutorial found in Chapter 4 for illustrating the use of PADE and is referred to as the manager/worker example.