scalapack

Version:

2.1.0, 2.2.0

Category:

numlib

Cluster:

Vali

Author / Distributor

https://www.netlib.org/scalapack/

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