next up previous contents
Next: How PADE Works Up: Introduction to PADE Previous: Introduction to PADE

The PADE Philosophy

 

The goal of PADE is to facilitate the development of parallel applications that run on a heterogeneous virtual machine, that is, a machine composed of independent networked computers (its nodes), which may be of different types, and/or different file systems.

Such an application will have components that reside on the file systems of different computers with different operating systems. These components will have to be compiled on each node, usually with differing compiler directives and options. The compiled versions must be run on each node, and the input and output streams must be managed on each node.

Consider the basic operations that arise in the development cycle of such a program:

  1. Editing source files (potentially a different set of files for each node on the virtual machine).

  2. Transferring sets of source files between nodes, as appropriate.

  3. Compiling each set of source files on each node (in a heterogeneous environment, the compiler for each architecture, or even each node, may be slightly different).

  4. Executing the updated program.
Steps two and three can become quite time consuming as the number of nodes increases, even if the variation of operating systems between nodes is relatively minor (for example, if they are different variants of Unix). Also, keeping track of which source files require editing in step one can also become quite cumbersome.

The basic concept of PADE is to provide a development console for the virtual machine, so that all essential parallel development tasks can be carried out at a central location. This central location, the development host, is the computer where all source files for the parallel application are kept and is where PADE is executed. PADE provides a graphical interface to the operations of the virtual machine. PADE allows the following tasks to be performed on the development host, with transparent access to the other nodes of the virtual machine:

A graphical interface is a useful aid for keeping track of the application, as it enables one to visualize how the various parts of the application are distributed across the virtual machine. The current release of PADE offers a graphical representation of the virtual machine, which shows the nodes and their associated program files on a two-dimensional diagram. Many of the file and command management actions that are required during application development can be carried out by familiar ``click and drag'' operations on objects in this diagram, which simplifies much routine administrative work that would otherwise distract the programmer's attention.



next up previous contents
Next: How PADE Works Up: Introduction to PADE Previous: Introduction to PADE



pade@cam.nist.gov