Central to the operation of a program like PADE is a vehicle for passing messages between nodes, that is, a message-passing library. The current version of PADE is based upon the widely used Parallel Virtual Machine (PVM) message-passing library developed at Oak Ridge National Laboratory. Indeed, it is a PVM application in that it utilizes PVM calls for all communication between processors of the virtual machine, although it should be straight forward to implement PADE for another message passing library (such as MPI).
The PVM software enables a user to write applications in which a collection of computers perform parts of the application in parallel. This group of computers can be considered to be a virtual machine (VM). Each computer on the VM will sometimes be referred to as a node and sometimes as a host. These two terms will be used interchangeably in this manual.
A VM can be homogeneous, that is, consist of identical processors sharing a common file system, or heterogeneous, that is, consist of more than one architecture or more than one file system. PADE is most effective in aiding parallel development on the latter type of virtual machine where consistency must be maintained between files in different locations.
A working PVM application consists of a set of files containing C and/or FORTRAN source codes, makefiles, data, etc. Some subset of these 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:
The two ways in which PADE aids the parallel developer are by helping to keep track of which source files must be sent and compiled on which hosts, and by actually sending the files and issuing the compile commands. In the PADE development model the developer keeps all source files on a single host (the development host) and provides the names of the hosts, the files needed to build the binary on each host, and the commands required to build the binary on each host. In the rest of this manual, this information is referred to as the PADE data.
Once the PADE data have been entered, the developer begins the edit/transfer/compile/execute cycle. In the edit phase, PADE enables the developer to modify any file described in the PADE data information with a user-specified editor. PADE enables the developer to perform the transfer and compile phases in one step using PVMmake (provided in the PADE distribution). PADE also displays the results of the compilations on the various hosts in a display window that can be scrolled through at leisure and saved if desired. In the execution phase, PADE enables the developer to launch the application being developed and to view the output in a display window.