previous | contents | next

Chapter 26 NOVA: a list-oriented computer 317

reduces the cost of the computer, without sacrificing speed of problem solution.

Solution of a network problem

Before going further into the structure of NOVA, let us consider a significant example, which shows that NOVA is well suited to the solution of differential equations using difference methods over a rectangular network.

Let Fig. 1 represent an artificial network used as a model for some physical process. Generally speaking, the method of advancing the variables at a mesh point (j, k) from one time step to the next involves only information from the neighboring mesh points. A typical hydrodynamics problem will require a list of 10 to 20 variables (physical quantities) at each mesh point. The traditional computer solution involves listing these variables to each point in a contiguous fashion and in a regular sequence with respect to the rows and columns of the array. If the total array does not fit into the fast memory, three adjacent columns (or rows) are brought to the fast memory; as a new column is calculated, the next column in sequence is brought in from bulk memory and the oldest of the three is written to bulk memory. In this fashion one proceeds across the array. This process is then repeated until some significant physical occurrence happens and the problem is ended.

In NOVA, the variables are organized into separate lists rather than by mesh point. From a computational standpoint this is possible since the main memory of NOVA may be essentially unlimited in size, at least exceeding the size of the largest present network problems. One then proceeds to execute operations on

Fig. 1. Two-dimensional array.

Fig. 2. Lists of variables.

lists of variables rather than single variables, performing a single operation for all mesh points in the array in sequence.

Let us look more closely at the variables and their possible combinations. Let Uj,k and Vj,k be variables associated with the array of Fig. 1. These variables are listed sequentially by column in Fig. 2, along with further lists of the V column shifted by various increments.

With some concentration, one discovers in Fig. 2 that an arithmetic operation between Uj,k and Vj,k is simply a matter of taking the two columns as they exist and operating on them in pairs. To combine Uj,k with a nearby neighbor, Vj,k-1, the V column is shifted down one place, at which time the proper neighboring variables are found opposite one another for the entire network. At certain boundaries of the array some elements have no proper neighbors. In NOVA these boundary elements must be handled separately in the same way as they must be handled separately in a conventional machine. In NOVA, calculations at boundaries may be temporarily inhibited by having a third input to the arithmetic unit which allows the calculation of a result for a pair of operands to proceed or not, as appropriate. This third input is defined as "conditions," and is brought as a bit string to the arithmetic unit concurrently with the operands. This bit string may contain any number from one to several bits for each pair of operands.

previous | contents | next