scalapack
- Version:
2.1.0, 2.2.0
- Category:
numlib
- Cluster:
Vali
Description
ScaLAPACK (Scalable Linear Algebra PACKage) is a library of high-performance linear algebra routines for parallel distributed memory machines. It extends LAPACK functionality to support MPI-based distributed memory environments, making it suitable for large-scale scientific computing.
Version 2.2.0 includes:
Support for dense matrix factorizations, solvers, and eigenvalue routines
Parallel LU, QR, and Cholesky decompositions
Block-cyclic data distribution for scalability
Optimized BLAS and communication patterns
This module is compiled with the gompi/2022a toolchain and optimized BLAS/LAPACK backends (indicated by -fb).
Documentation
ScaLAPACK is accessed via Fortran or C wrappers.
Linker flags (MPI + BLAS + LAPACK):
mpifort -o myprog myprog.f90 \
-lscalapack -llapack -lblas
Common routines:
----------------
pdgesv → Solve dense linear systems (double precision)
pdsyev → Compute eigenvalues/vectors of symmetric matrices
pdgetrf → LU factorization (distributed)
pdpotrf → Cholesky factorization
pdormqr → Multiply matrix Q from QR factorization
Documentation:
https://www.netlib.org/scalapack/slug.html
Examples/Usage
Load the module:
$ module load numlib/ScaLAPACK/2.2.0-gompi-2022a-fb
Compile a parallel solver:
$ mpifort -o solve solve.f90 -lscalapack -llapack -lblas
Run with MPI (example: 4 processes):
$ mpirun -np 4 ./solve
Check linked libraries:
$ ldd ./solve | grep scalapack
Unload the module:
$ module unload numlib/ScaLAPACK/2.2.0-gompi-2022a-fb
Installation
Source code is obtained from ScaLAPACK