The underlying "LAPACK" linear algebra interface is available from several vendors. By default, the generic LAPACK library "lapack" is searched for.
To specify a particular LAPACK library, use CMake configure variable "LAPACK_VENDOR" using one of the following vendors:
- AOCL AMD Optimizing CPU Libraries
- Atlas Automatically Tuned Linear Algebra Software
- MKL Intel oneMKL: requires oneMKL >= 2021.3
- Netlib Netlib LAPACK (default)
- OpenBLAS OpenBLAS
For example, to use OpenBLAS:
cmake -DLAPACK_VENDOR=OpenBLAS
Optionally, hint the location the LAPACK library like:
cmake -DLAPACK_ROOT=/path/to/lapack
CMake searchs for Intel oneMKL if environment variables MKLROOT is set:
- Base Toolkit: MKL LAPACK
- HPC toolkit: SCALAPACK.
For MUMPS ≥ 5.2.0, GEMMT symmetric matrix-matrix multiplication is recommended by the MUMPS User Guide if available. By default GEMMT is ON, but may be disabled like:
cmake -Dgemmt=off
If the compiler doesn't have LAPACK and SCALAPACK, first build and install them:
cmake -S scripts -B scripts/build -DCMAKE_INSTALL_PREFIX=~/mylibs
cmake --build scripts/build -t scalapack
# mumps
cmake -B build -DCMAKE_PREFIX_PATH=~/mylibs
cmake --build build
Since oneAPI comes with LAPACK and ScaLAPACK with oneAPI in oneMKL, there is no need to build them with oneAPI + oneMKL.