Application Of Array Processor To Sparse Elimination
Authors: Woo P.T. 
Published: December 2007

Abstract
The Floating Point Systems array processor AP120B can be used to efficiently solve large systems of linear equations by a sparse Gaussian elimination technique. Bench mark tests show the following results: For LU factorization, the AP120B requires 22 to 35% less CPU time than the IBM 370/168; for forward or back substitution, the AP120B requires 0 to 44% less CPU time. Coding considerations are discussed for the AP120B in sparse elimination.

Introduction
In many reservoir simulation problems, we seek the solution of a system of nonlinear, parabolic partial differential equations describing multiphase flow. Common approximation techniques used to solve the partial differential equations lead to a sequence of partial differential equations lead to a sequence of linear equations
(1)
where A is a matrix and x and b are vectors.
One effective way to solve Equation (1) is to use Gaussian elimination. Since A is sparse, sparse Gaussian elimination techniques have been developed to solve the equation efficiently.
In a reservoir simulation study Equation (1) is solved repeatedly, sometimes taking as much as 80% of the total computing time. Consequently, there is strong incentive to reduce the cost of solving Equation (1). The purpose of this paper is to show that a sparse elimination technique, when used in conjunction with an array processor, is capable of solving Equation (1) efficiently and economically.

ARRAY PROCESSOR
The array processor is a high-performance auxiliary computer that works in parallel with a host computer. Figure 1 illustrates schematically an array processor-host computer combination. The applications processor-host computer combination. The applications program, such as a reservoir simulator, executes in program, such as a reservoir simulator, executes in the host computer. The program may call on the array processor to perform calculations by issuing a processor to perform calculations by issuing a Fortran or Assembler call. At the same time, data are transmitted from the host computer to the array processor via an I/O channel. The array processor, processor via an I/O channel. The array processor, working independently, then calls in the appropriate algorithms to perform the calculations. When these are completed, the results are returned to the host computer via the I/O channel. An interface program, or host operating system driver, provides control of data transfer and synchronization of operations.
A number of array processors have recently appeared on the market. Three that can be attached to large, general-purpose host computers are given in Table 1. The array processor used in this investigation is the Floating Point Systems AP120B with a 333-nanosecond memory of 256K 38-bit floating point words. The host computer is the IBM 370/168.

SPARSE ELIMINATION TECHNIQUES

Method
Several authors have discussed the application of sparse elimination techniques to reservoir simulation. The technique consists of two steps. First, we renumber or reorder the grid to minimize the fill-in during elimination and the number of arithmetic operations involving nonzeroes. Second, we solve the permuted system using Gaussian elimination, storing and operating on only the nonzeroes of A plus the new nonzeroes that occur during elimination.
The renumbering of a grid is accomplished through a suitable numbering scheme, such as the alternate diagonal scheme described in Reference 3; or by using a renumbering algorithm, such as the minimum degree algorithm discussed in Reference 2. Renumbering needs to be done only once for each grid and is best performed by a Fortran program on the host computer. performed by a Fortran program on the host computer. In solving Equation (1) by Gaussian elimination, a series of operations is used to transform A into an upper triangular matrix, U, such that
U × = d (2)