MUltifrontal Massively Parallel Solver (MUMPS: http://mumps-solver.org/) is an open-source package for solving systems of linear equations of the form:
where \(A\) is a square sparse matrix that can be one of the following on distributed memory computers:
Unsymmetric
Symmetric positive definite
General symmetric
MUMPS implements a direct method based on a multi-frontal approach which performs the Gaussian factorization:
where \(L\) is a lower triangular matrix and \(U\) an upper triangular matrix. If the matrix is symmetric then the factorization:
where \(D\) is a block diagonal matrix performed. The system \(Ax = b\) is solved in the following steps:
Analysis
During an analysis, preprocessing including re-ordering and a symbolic factorization are performed. This depends on the external libs METIS, SCOTCH, and PORD (inside MUMPS source). \(A_{pre}\) denotes the preprocessed matrix.
Factorization
During the factorization, \(A_{pre} = LU\) or \(A_{pre} = LDL^T\), depending on the symmetry of the preprocessed matrix, is computed. The original matrix is first distributed (or redistributed) onto the processors depending on the mapping computed during the analysis. The numerical factorization is then a sequence of dense factorization on the frontal matrices.
Solution
The solution \(x_{pre}\) of:
\[LUx_{pre} = b_{pre} \quad\text{or}\quad LDL^T x_{pre} = b_{pre}\]where \(x_{pre}\) and \(b_{pre}\) are the transformed solution \(x\) and right-hand side \(b\) respectively. They are associated to the preprocessed matrix \(A_{pre}\) and obtained through the forward elimination step:
\[Ly = b_{pre} \quad\text{or}\quad LDy = b_{pre}\]Followed by the backward elimination step:
\[Ux_{pre} = y \quad\text{or}\quad L^T x_{pre} = y .\]The solution \(x_{pre}\) is finally processed to obtain the solution \(x\) of the original system \(Ax = b\).
The AOCL libraries can be integrated with the MUMPS sparse solver to perform highly optimized linear algebra operations on AMD “Zen”-based processors.