An incomplete LU (ILU) factorization is generally computed by a
Gaussian elimination process where certain nonzeros are
neglected in some way. Here, we present a completely different method
for computing ILU factorizations. The new method is iterative in
nature and is highly parallel. Given a matrix
, the new method
computes the incomplete factors
and
by using the property
The new method interprets an ILU factorization as, instead of a
Gaussian elimination process, a problem of computing the unknowns
and
, which are the entries of
and
,
using property (1) as constraint equations. Such an approach may
seem impractical because these equations
are nonlinear and there are more equations than the number of rows in
.
However, there are several potential advantages to computing an ILU
factorization this way: 1) the equations can be solved in parallel
without needing to reorder the matrix
,
2) the equations do not need to be solved
very accurately to produce a good ILU preconditioner, and 3) we often
have a good initial guess for the solution.
The constraint equations may be solved via a fixed-point iteration, or a parallel asynchronous iteration in the parallel setting. We will present theoretical and experimental results on the convergence of these methods for computing ILU factorizations. The fact that the method is iterative means that the exact ILU factorization does not need to be computed, and we show experimentally that roughly converged iterations produce factorizations that are very effective preconditioners. Furthermore, the number of iterations required is typically very small (less than 5), especially when good initial guesses for the ILU factorization are available, such as in the case when solving a sequence of related linear systems. We can also interpret the new method as a way of updating an existing ILU preconditioner.