SuperLU and SuperLU_DIST
SuperLU and SuperLU_DIST are libraries for the direct solution of large sparse non-symmetric systems of linear equations, typically by factorisation and back-substitution. The libraries are provided by Lawrence Berkeley National Laboratory and are freely available under a slightly modified BSD-style license.
Two separate modules are provided for SuperLU and SuperLU_DIST.
module load superlu
This module provides the serial library SuperLU.
Compiling and linking with SuperLU
Compiling and linking SuperLU applications requires no special action
module load superlu and using the standard compiler wrappers
ftn. The exact options issued by the compiler
wrapper can be examined via, e.g.,
$ cc --cray-print-opts
The module defines the environment variable
SUPERLU_DIR as the root
location of the installation for a given programming environment.
superlu/5.2.2recompiled May 2023 (PE 22.12)
superlu/5.2.2installed October 2021 (PE 21.04)
superle/5.2.1installed January 2021
module load superlu-dist
This modules provides the distributed memory parallel library SuperLU_DIST both with and without OpenMP.
Compiling and linking SuperLU_DIST
Use the standard compiler wrappers:
$ cc my_superlu_dist_application.c
$ cc -fopenmp my_superlu_dist_application.c
superlu-dist module defines the environment variable
as the root of the installation for the current programming environment.
superlu-dist/8.1.2installed as default May 2023 (PE 22.12)
superlu-dist/6.4.0recompiled May 2023 (PE 22.12)
superlu-dist/6.4.0installed October 2021 (PE 21.04)
superlu-dist/6.1.1installed January 2021
Compiling your own version
The build used for Archer2 can be replicated by using the scripts provided at the Archer2 repository.
The current Archer2 supported version may be built via
$ git clone https://github.com/ARCHER2-HPC/pe-scripts.git $ cd pe-scripts $ git checkout modules-2022-12 $ ./sh/tpsl/superlu.sh --prefix=/path/to/install/location
--prefixoption controls the install destination.
SuperLU_DIST is configured using Metis and Parmetis, so these should be installed first:
$ ./sh/tpsl/metis.sh --prefix=/path/to/install/location $ ./sh/tpsl/parmetis.sh --prefix=/path/to/install/location $ ./sh/tpsl/superlu_dist.sh --prefix=/path/to/install/location
The Supernodal LU project home page
The SuperLU User guide (pdf). This describes both SuperLU and SuperLU_DIST.
The SuperLU github repository
The SuperLU_DIST github repository