STFC Website

part of UK Research & Innovation

Version 2.1.1

16th September 2024

HSL_MP48: Sparse unsymmetric system: parallel direct method

The module HSL_MP48 solves sets of \(n \times n\) unsymmetric linear systems of equations \(\mathbf{Ax} = \mathbf{b}\), in parallel using Gaussian elimination. The matrix \(\mathbf{A}\) must have been preordered to singly-bordered block-diagonal form

\[\left ( \begin{array}{cccccc} \mathbf{A} _{11} &&&&& \mathbf{C} _1 \\ & \mathbf{A} _{22} &&&& \mathbf{C} _2 \\ && \ldots &&& \ldots \\ &&& \ldots && \ldots \\ &&&&\mathbf{A} _{NN} & \mathbf{C} _N \end{array} \right ) .\] MPI is used for message passing.

A partial \(\mathbf{LU}\) decomposition is performed on each of the submatrices \((\mathbf{A} _{ll} \mathbf{C} _L)\) separately. Once all possible eliminations have been performed, for each submatrix there remains a Schur complement matrix \(\mathbf{F} _l\). The variables that remain are called interface variables and the interface matrix \(\mathbf{F}\) is formed by summing the matrices \(\mathbf{F} _l\). Gaussian elimination is used to factorize \(\mathbf{F}\), using the HSL sparse direct solver MA48. Block forward elimination and back substitution completes the solution.

The user’s matrix data may optionally be held in unformatted sequential files. In addition, \(\mathbf{L}\) and \(\mathbf{U}\) factors for the submatrices may optionally be written to sequential files. This reduces main memory requirements when the number \(N\) of submatrices is greater than the number of processes used.

The HSL package HSL_MC66 may be used for preordering the matrix to singly-bordered block-diagonal form.