La bibliothèque LAPACK
Description
LAPACK (Linear Algebra Package) est une bibliothèque dédiée à l'algèbre linéaire dense et dépend de la bibliothèque BLAS (Basic Linear Algebra Subprograms). Elle fournit des fonctions pour la résolution de systèmes d'équations linéaires, le calcul de valeurs propres et les décompositions de matrices (LU, QR, SVD, Cholesky).
LAPACK est disponible via les bibliothèques Intel MKL (Math Kernel Libraries) que nous recommandons car elles offrent de meilleures performances ou en version libre (Netlib).
Versions installées
Les versions installées sur Jean Zay peuvent être retrouvées par les commandes suivantes :
-
Versions Intel MKL
module avail intel-mkl -
Versions Netlib
module avail netlib-lapack
Environnement
Les versions de LAPACK sont disponibles dans différents environnements.
-
Environnements Intel
Concernant les environnements Intel, nous vous invitons à consulter notre documentation sur la bibliothèque Intel MKL.
-
Version libre
Pour la version libre, ces informations peuvent être retrouvées par la commande
module show. Par exemple :module show netlib-lapack
module-whatis {LAPACK version 3.X is a comprehensive FORTRAN library that does linear algebra operations including matrix inversions, least squared solutions to linear sets of equations, eigenvector analysis, singular value decomposition, etc. It is a very comprehensive and reputable package that has found extensive use in the scientific community.}prereq gcc/11.4.1 gcc/10.1.0conflict netlib-lapack
Available software environment(s):- gcc/11.4.1- gcc/10.1.0
Pour utiliser cette librairie dans d'autres environnements, veuillez contacter l'équipe Support aux Utilisateurs.
Pour obtenir les informations sur les chemins d'accès aux librairies de la version libre, il sera nécessaire de charger au préalable l'environnement choisi (gcc dans cet exemple) :
module load gcc/11.4.1module show netlib-lapackUtilisation
La bibliothèque est accessible par la commande module.
Utilisation de LAPACK via la MKL
Pour l'utilisation de la MKL, nous vous invitons à consulter la page concernant la bibliothèque Intel MKL.
Utilisation de LAPACK en version libre
Pour charger la version par défaut dans l'environnement courant (ou dans l'environnement par défaut si aucun environnement n'est préalablement chargé) :
module load netlib-lapack
ou pour charger une version spécifique dans un environnement spécifique (gcc dans cet exemple) :
module load gcc/8.2.0module load netlib-lapack/3.8.0
Édition des liens
Édition de liens avec la MKL
Nous vous invitons à consulter la page concernant la bibliothèque Intel MKL.
L'édition des liens pour l'utilisation de la MKL peut varier en fonction de plusieurs paramètres tels que le système d'exploitation, le type de compilateur et l'architecture. Il est recommandé d'utiliser Intel® MKL Link Line Advisor pour retrouver les options appropriées.
Voici un exemple pour la bibliothèque LAPACK :
module load intel-compilersmodule load intel-mklifort appel_lapack.f90 -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 \
-lmkl_sequential -lmkl_core -lpthread -lm -ldl
Édition des liens avec version libre
Lors de l'édition de liens, il est nécessaire d'ajouter les options -llapack -lblas :
module load gcc/11.4.1module load netlib-lapackgfortran appel_lapack.f90 -llapack -lblas
Documentation
📝 Site de référence
📝 Intel MKL documentation
📝 Intel MKL Link Line Advisor