Skip to content

ScaLAPACK

A high-performance linear algebra library for distributed memory systems.


ScaLAPACK requires an environment module

In order to use ScaLAPACK, you must first load the appropriate environment module:

module load gnu openmpi intel mvapich

ScaLAPACK (Scalable Linear Algebra PACKage) is a high-performance numerical linear algebra library designed for distributed-memory parallel computers. It is widely used for solving dense and banded linear systems, eigenvalue problems, least squares problems, and singular value decompositions in parallel environments.

Availability on RCC Systems#

ScaLAPACK 2.0.2 is available on RCC systems via multiple compiler and module combinations:

Compiler Module
gnu openmpi or mvapich/2.3.5
intel openmpi or mvapich/2.3.5
gnu/13.2.0 openmpi, openmpi/4.1.6 or mvapich

Choose one compiler and one module combination based on your project requirements and the available resources.

Loading the Modules#

Example module load commands:

1
2
3
4
5
6
module purge
module load gnu openmpi
# or
module load gnu/13.2.0 openmpi/4.1.6
# or
module load intel mvapich/2.3.5

Compiling Programs with ScaLAPACK#

Example using an official test file:

# 1)  Download an example code
wget https://www.netlib.org/scalapack/examples/sample_pdsyev_call.f

# 2)  Load module (example below)
module load gnu openmpi

# 3) Compile with MPICC
mpifort sample_pdsyev_call.f -o example.x -lscalapack -lmpiblacs -lm

# 4)  Test
srun --export=ALL -n 16 -A backfill2 -t 00:10:00 ./example.x

Running ScaLAPACK with SLURM#

Example SLURM script for running ScaLAPACK:

#!/bin/bash 
#SBATCH -J ScaLAPACKTest
#SBATCH -A backfill2
#SBATCH -t 00:10:00
#SBATCH -n 16

module purge
module load gnu openmpi

srun example.x

Helpful Tutorials and Documentation#