LAPACK¶
About¶
LAPACK is written in Fortran 90 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems.
Note
You might be interested in adopting much more optimized derivates of LAPACK, like ScaLAPACK or Eigen (may require code edit and recompilation). It should be noted that in most instances, OpenBLAS serves as a suitable substitute for LAPACK.
The different LAPACK installations available on Discoverer may be provided with different abilities regarding the indexing of the handled arrays. If the installation supports the default 32-bit API, it is capable of indexing arrays comprising a number of elements less or equal to the upper range of the 32-bit integer type (up to 231-1 elements). In case the installation supports the extended 64-bit API, then the number of elements in one array, can be less or equal to the upper range of the 64-bit integer type (up to 263-1 elements).
Supported versions (32-bit and 64-bit API)¶
Warning
At present, we solely provide support for the GCC build of the LAPACK code. All other builds that were previously accessible on Discoverer, except for those provided by third parties, are deemed retired. The retired builds should not be used in conjunction with productive code.
To check which LAPACK versions and build types are currently supported on Discoverer, execute on the login node:
module avail lapack
Important
Those of the LAPACK builds supported by the Discoverer Support Team also include LAPACKE, CBLAS, BLAS, and tmglib.
The LAPACK environment modules with ‘-int64’ in their names provide access to installations that support the 64-bit API, while those with no ‘-int64’ in their names load installations with build-it 32-bit API.
The compilation process adopted is based on the following published recipes:
https://gitlab.discoverer.bg/vkolev/recipes/-/tree/main/lapack
Loading/Compiler affinity¶
To obtain access to the latest LAPACK load the environment module that matches your compiler requirements:
LP GCC build (32-bit API)¶
module load lapack/latest-gcc
or specify the particular version of LAPACK you need.
Note
This is the lp64
version of the LAPACK library, which is capable of indexing arrays comprising a number of elements less or equal to the upper range of the 32-bit integer type (up to 231-1 elements).
ILP GCC build (64-bit API)¶
module load lapack/latest-gcc-int64
or specify the particular version of LAPACK you need.
Note
This is the ilp64
version of the LAPACK library, which is capable of indexing arrays comprising a number of elements less or equal to the upper range of the 64-bit integer type (up to 263-1 elements).
NVIDIA HPC SDK build (optional)¶
AMD AOCC build (optional)¶
Getting help¶
See Getting help