The ScaLAPACK library
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.
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-scalapackUsageโ
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
Link Editingโ
Link Editing with MKLโ
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
Link Editing with the Free Versionโ
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