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