Pipelined Linear Equation Solvers and VLSI
S. Lennart Johnsson · 1982
Many of the commonly used methods for solution of linear systems of equations on sequential machines can be given a concurrent formulation. The concurrent algorithms take advantage of independence of operations in order to reduce the time complexity of the methods. During the course of computations specified by the algorithm data has to be routed to the various places of computation. Pipelining can be used to avoid broadcasting in VLSI arrays for computation. Pipelining will in general allow for a reduced cycle time but may force data to be spread out in time, as is the case for Gaussian elimination. What the required spacing is depends on the pipelining and the data flow. In this paper concurrent algorithms and their pipelining for Gaussian elimination, Householder transformations and Given's rotations are discussed. Gaussian elimination and Given's rotations can use two-dimensional arrays while Householder transformation uses a one-dimensional array. If partial pivoting is necessary in Gaussian elimination, then one dimension of the array is essentially lost and a linear array is almost as efficient as a two-dimensional army. Householder transformations that are numerically stable may perform the triangulation in shorter time, if partial pivoting is necessary in Gaussian elimination. The amount of arithmetic that a node in the arrays performed is somewhat different for the different methods. The difference is largest for the boundary cells. However, it should be feasible to design a common node of very low complexity that very efficiently supports a range of methods for the solution of linear systems of equations.