Skip to main content

The ScaLAPACK library

โš  INFORMATION
This page was translated by an AI (LLM) with a cursory human check and is awaiting full review.

Descriptionโ€‹

ScaLAPACK is a library composed of a set of Fortran subroutines for solving dense linear algebra problems in parallel using direct numerical methods. This library itself depends on the parallel libraries PBLAS (Parallel BLAS) and BLACS (Basic Linear Algebra Communication Subprograms), on which it relies to perform elementary matrix operations and inter-process communications in parallel, via MPI for example.

ScaLAPACK is available in a free version (netlib) or via the Intel MKL (Math Kernel Libraries) which we recommend as they offer better performance.

Installed Versionsโ€‹

The versions installed on Jean Zay can be found using the following commands:

module avail intel-mklmodule avail netlib-scalapack

Environmentโ€‹

The versions of ScaLAPACK are available in different environments.

Intel MKL Versionโ€‹

For Intel environments, please refer to our documentation on the Intel MKL libraries.

Free Versionโ€‹

For the free version, this information can be found using the command:

module show netlib-scalapack

To use this library in other environments, please contact the User Support team.

Note

To obtain information on the library access paths, it will be necessary to load the chosen environment first. For example:

module load nvidia-compilers/21.9 cuda/11.2 openmpi/4.0.5-cudamodule show netlib-scalapack

Usageโ€‹

The library is accessible via the module command.

Using ScaLAPACK via MKLโ€‹

For the use of MKL, please refer to the page concerning the Intel MKL library.

Using the Free Version of ScaLAPACKโ€‹

To load the default version in the current environment (or in the default environment if no environment is previously loaded):

module load netlib-scalapack

or to load a specific version in a specific environment (Gcc in this example):

module load gcc/8.2.0 openmpi/4.0.1-cudamodule load netlib-scalapack/2.0.2-mpi-cuda

Please refer to the page concerning the Intel MKL libraries.

Link editing for the use of MKL can vary depending on several parameters such as the operating system, the type of compiler and the architecture. It is recommended to use the Intelยฎ MKL Link Line Advisor to find the appropriate options.

Here is an example for the ScaLAPACK library:

module load intel-compilers intel-mpimodule load intel-mklifort appel_scalapack.f90 -L${MKLROOT}/lib/intel64 \ 
-lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 \
-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm

When link editing, it is necessary to add the option -lscalapack:

module load gcc/9.1.0 intel-mpi/19.0.4module load netlib-scalapack/2.0.2-mpigfortran appel_scalapack.f90 -lscalapack

Documentationโ€‹

๐ŸŒ Reference Site
๐Ÿ“ ScaLAPACK Users' Guide
๐Ÿ“ ScaLAPACK and PBLAS subroutines specifications
๐Ÿ“ BLACS subroutines specifications
๐Ÿ“ Intel MKL
๐Ÿ“ Intelยฎ MKL Link Line Advisor

Your opinion matters!

To give your feedback, report an error, or suggest an improvement, click here:

quick anonymous questionnaire

This questionnaire is temporary and will take less than a minute, so take the opportunity!