Jean Zay : 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

  • Versions Intel MKL (versions recommandées)
  • netlib-lapack/3.8.0 : LAPACK 3.8.0, compilateurs GCC 8.2.0, GCC 9.1.0 ou Intel 2019.4

Ces informations peuvent être retrouvées par les commandes :

$ module avail intel-mkl
$ module avail netlib-lapack

Environnement

Les versions de LAPACK sont disponibles dans les environnements suivants :

  • Les environnements Intel relatifs aux diverses Intel MKL
  • intel-compilers/19.0.4
  • gcc/9.1.0
  • gcc/8.2.0

Concernant les environnements Intel, nous vous invitons à consulter notre documentation sur les bibliothèques Intel MKL.

Pour la version libre, ces informations peuvent être retrouvées par la commande :

$ module show netlib-lapack

Pour utiliser cette librairie dans d'autres environnements, veuillez contacter l'équipe Support aux Utilisateurs.

Remarque : 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/9.1.0
$ module show netlib-lapack

Utilisation

La bibliothèque est accessible par module.

Utilisation de LAPACK via la MKL

Pour l'utilisation de la MKL, nous vous invitons à consulter la page concernant les bibliothèques 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.0
$ module load netlib-lapack/3.8.0

Édition des liens

Édition de liens avec la MKL

Nous vous invitons à consulter la page concernant les bibliothèques 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® Math Kernel Library Link Line Advisor pour retrouver les options appropriées.

Voici un exemple pour la bibliothèque LAPACK :

$ module load intel-mkl
$ ifort 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/9.1.0
$ module load netlib-lapack
$ gfortran appel_lapack.f90 -llapack -lblas

Documentation