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:
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.