500

Task-Oriented Parallel ILU(k) Preconditioning on Computer Cluster and Multi-core Machine

Abstract

ILU(k) is a preconditioner used for many stable iterative linear solvers. We present TPILU(k), the first efficiently parallelized ILU(k) preconditioner that maintains this stability. Iterative solvers using TPILU(k) are guaranteed to perform at least as well as the same solver using sequential ILU(k). Indeed, in experiments on a 16-core computer, TPILU(k)-based solvers performed up to 9 times faster. Normally, TPILU(k) returns exactly the same preconditioned matrix as the original sequential ILU(k) preconditioner would have returned. As an optimization, TPILU(k) attempts to use a new {\em incomplete inverse method} as a fast approximation for the original ILU(k) preconditioned matrix. This allows TPILU(k)-based solvers to compete with fast, unstable parallel solvers, such as parallel Block Jacobi ILU(k). In the regime where parallel Block Jacobi fails, TPILU(k) may also fail, but it will fail fast, and then revert to the slower standard parallelization that returns the same preconditioned matrix as the sequential ILU(k) algorithm. The incomplete inverse method also has benefits for sequential ILU(k)-based iterative solvers. Finally, The combined algorithm also generalizes to an efficient, parallel distributed version for computer clusters.

View on arXiv
Comments on this paper