
Table des matières
Jean Zay : la bibliothèque BLAS
Description
BLAS (Basic Linear Algebra Subprograms) est un ensemble de fonctions réalisant des opérations de base de l'algèbre linéaire comme des additions de vecteurs, des produits scalaires ou des multiplications de matrices.
BLAS est disponible via les bibliothèques Intel MKL (Math Kernel Libraries) que nous recommandons car elles offrent de meilleures performances ou en versions libres (Netlib et OpenBLAS).
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.4openblas/0.3.6
: OpenBLAS 0.3.6, 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 $ module avail openblas
Environnement
Les versions de BLAS 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 les versions libres, ces informations peuvent être retrouvées par les commandes :
$ module show netlib-lapack $ module show openblas
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 des versions libres, 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 $ module show openblas
Utilisation
La bibliothèque est accessible par module.
Utilisation de BLAS via la MKL
Pour l'utilisation de la MKL, nous vous invitons à consulter la page concernant les bibliothèques Intel MKL.
Utilisation de BLAS via LAPACK
Pour l'utilisation de la bibliothèque LAPACK, nous vous invitons à consulter notre documentation concernant les bibliothèques LAPACK.
Utilisation de BLAS via OpenBLAS
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 openblas
ou pour charger une version spécifique dans un environnement spécifique (Gcc dans cet exemple) :
$ module load gcc/8.2.0 $ module load openblas/0.3.6
É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 BLAS :
$ module load intel-mkl $ ifort appel_blas.f90 -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential \ -lmkl_core -lpthread -lm -ldl
Édition des liens avec LAPACK version libre
Pour l'édition de liens avec la bibliothèque libre LAPACK, nous vous invitons à consulter notre documentation concernant les bibliothèques LAPACK.
Lors de l'édition de liens, il est nécessaire d'ajouter les options -lblas
:
$ module load gcc/9.1.0 $ module load netlib-lapack $ gfortran appel_blas.f90 -lblas
Édition des liens avec BLAS version libre
Lors de l'édition de liens, il est nécessaire d'ajouter les options -lopenblas
:
$ module load gcc/9.1.0 $ module load openblas $ gfortran appel_blas.f90 -lopenblas