Next: Supported Hardware Up: HeNCE: A Users' GuideVersion Previous: About this Document

Introduction

HeNCE is a tool that greatly simplifies the writing of parallel programs. In HeNCE, the user creates a parallel program by drawing and then annotating a picture that explicitly specifies a parallel computation. There are no traditional parallel programming primitives to learn.

The program is then automatically translated into an executable parallel program that runs under the PVM system as will be described below. The parallel program executes on a network of one or more UNIX workstations. The workstations need not all be of the same type.

The picture the user draws is a directed graph in which nodes represent calls to conventional sequential subroutines written in C or Fortran. Arcs represent execution ordering constraints. A node may execute its subroutine when all nodes that preceed it in the graph have executed theirs. Figure 1 shows a simple example HeNCE program that uses only a small subset of HeNCE's facilities.

The program begins by executing (or firing) node 1. Notice that HeNCE graphs are, by convention, drawn from bottom to top. After node 1 fires, nodes 2 and 3 may execute in parallel. Finally, node 4 runs, and the program terminates. The name of the subroutine that a node runs is show next to it. For example, nodes 2 and 3 both run separate invocations of subroutine simp.

The steps a user must perform to create, compile, and run a HeNCE program are as follows. These steps, as well as the other facilities of the HeNCE language, will be described in detail later.

  1. Draw a picture that shows the desired parallel structure. The drawing environment is called htool. It is mouse-based and runs on workstations that support X windows (X11R4 or later).

  2. Annotate the nodes in the picture. Annotations are entered into a pop-up text editor window. Figure 2 shows the annotation for node 2 of Figure 1. The annotation shows the call to the sequential subroutine as well as what variables from predecessor nodes are read and what variables are made available to successor nodes. In Figure 2, variables a, mid, and n are set by node 1, and variable s1 is read by node 4.

  3. Write all of the sequential subroutines that will be called from the HeNCE nodes.

  4. Define the virtual parallel machine on which the parallel program will run. This is done by specifying a cost matrix that lists the cost of running each of the program's subroutines on each of the hosts the user selects for use by the parallel computation. The cost matrix thus defines both the list of hosts on the network that make up the virtual parallel machine and provides HeNCE with execution cost estimates for each subroutine that help it to run each subroutine on a host that is chosen to maximize overall performance. The default cost matrix runs all nodes on the machine on which you are running htool.

  5. Select Build from the Build menu to compile the parallel program.

  6. Select Run Program from the Run menu to execute the parallel program.

  7. HeNCE will animate the program's execution and will produce a strip chart that shows the utilization of the hosts in the virtual parallel machine during the run.

HeNCE is intended for the programmer or scientist who wishes to exploit a collection of machines to which he has access, yet does not want to delve into the details of parallel programming. HeNCE allows the programmer unfamiliar with parallelism to glue together sequential subroutines with a picture, creating a parallel program. For a more general description of HeNCE see also [1]. HeNCE is non-exclusively oriented towards applications in computational science.



Next: Supported Hardware Up: HeNCE: A Users' GuideVersion Previous: About this Document


newton@utkcs.cs.utk.edu
Wed Jun 15 15:13:55 EDT 1994