A Cholesky out-of-core factorization
Frequently, the computational core in general engineering simulation software is the linear system solver. This solver may be dense or sparse depending on the numerical discretization. If the system matrix related to the linear system is sparse, it is desirable to use a sparse structure. The direct sparse linear solvers such as Cholesky, LDLT, or LU are perfect black boxes, i.e., they only need the matrix (A) and the right hand side vector (b) of the linear system Ax = b as inputs. Nevertheless, their main disadvantage is that the memory they require usually increases rapidly with problem size. In this work, we propose an out-of-core implementation for the Cholesky solver in order to overcome the memory problem. The out-of-core layer is based on a specialized cache memory development that stores only a part of the problem matrix A and the factor L whose complete data are stored in temporary disk files. The factor L is computed in a two step process, specifically: The first step is symbolical and the second numerical. The first step computes position of the non-zero element of each row/col and the second computes the numerical value for each position using the Multifrontal Method. We have obtained significant saving of memory with our proposal. The proposed implementation overlaps computation with I/O to speed up the different phases of the solver overcoming disk latencies. The improvements on cache structure, together with the implementation of prefetch techniques show very good results for multi-core processors. (c) 2011 Elsevier Ltd. All rights reserved.
out-of-core techniques sparse cholesky factorization linear system of equations