SuperLU

SuperLU is a general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations. The library is written in C and is callable from either C or Fortran program. It uses MPI, OpenMP and CUDA to support various forms of parallelism. It supports both real and complex datatypes, both single and double precision, and 64-bit integer indexing. The library routines performs an LU decomposition with partial pivoting and triangular system solves through forward and back substitution. The LU factorization routines can handle non-square matrices but the triangular solves are performed only for square matrices. The matrix columns may be preordered (before factorization) either through library or user supplied routines. This preordering for sparsity is completely separate from the factorization. Working precision iterative refinement subroutines are provided for improved backward stability. Routines are also provided to equilibrate the system, estimate the condition number, calculate the relative backward error, and estimate error bounds for the refined solutions.
Serial SuperLU package also contains ILU routines, using numerical threshold-based dropping, with partial pivoting (ILUTP).

SuperLU package comes in three different flavors:

  • SuperLU for sequential machines 
  • SuperLU_MT for shared memory parallel machines
  • SuperLU_DIST for distributed memory 

Usage

SuperLU & SuperLU_MT

Versionmodule name
5.2.1superlu/5.2.1
3.1superlu-mt/3.1
Compiler/MPIGCC 8.3.1GCC 9.3.0Intel 19.0.3Intel 20.0.3Intel 2021.3.0
Serial

SuperLU_DIST

Versionmodule name
6.3.1superlu-dist/6.3.1
Compiler/MPIGCC 8.3.1GCC 9.3.0Intel 19.0.3Intel 20.0.3OneAPI 2021.3.0
MPICH 3.3.2
MVAPICH2 2.3.4
OpenMPI 4.0.5

Example
 

For more information vist