The Sparse Approximate Inverse (SAI) Preconditioner
The goal of the sparse approximate inverse (Sparse Approximate Inverse (SAI)) preconditioner is to construct a preconditioner matrix M that is an approximate inverse of the system matrix A. The matrix is constructed by solving the minimization problem
(20-26)
This problem is easily parallelizable because the problems are independent for each column mi, but because each problem involves solving the equation Ami =  ei, it is costly to construct the matrix M. In general, the resulting matrix M is dense. This problem is circumvented by constructing an approximation to M. The goal of the approximation matrix is that it should be sparse. One way of achieving this goal is to predefine a sparsity pattern for M with an associated index set I. Then the problem is reduced to
(20-27)
where Ii is the index set for column i. Because A is sparse and pi is zero for all entries that are not part of the index set Ii, there is a corresponding index set Ji that defines the row to solve for. Therefore, the original problem is reduced to a least-squares problem
(20-28)
for each column pi in P. The index set can be chosen as the one of the system matrix or of a power of the system matrix. Symmetric problems can be treated using the symmetrization (P + PT) /2.