Aller au contenu principal

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 en versions libres (Netlib et OpenBLAS) ou via les bibliothèques Intel MKL (Math Kernel Libraries) que nous recommandons car elles offrent de meilleures performances.

Versions installées

Les versions installées sur Jean Zay peuvent être retrouvées par les commandes suivantes :

  • Versions Intel MKL (versions recommandées)
    module avail intel-mkl
  • Versions Netlib-Lapack
    module avail netlib-lapack
  • Versions OpenBLAS
    module avail openblas

Environnement

Les versions de BLAS sont disponibles dans différents environnements.

  • Environnements Intel

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

  • Versions libres

Pour les versions libres, 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
module show openblas

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

Remarques
  • 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-lapack
  • Avec la commande module show, vous pouvez aussi obtenir les informations sur les chemins d'accès aux librairies des OpenBLAS :
module show openblas

Utilisation

La bibliothèque est accessible par la commande module.

Utilisation de BLAS via la MKL

Pour l'utilisation de la MKL, nous vous invitons à consulter la page concernant la bibliothèque 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.0module load openblas/0.3.6

É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 BLAS :

module load intel-mklifort 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/11.4.1module load netlib-lapackgfortran appel_blas.f90 -lblas

Édition des liens avec BLAS version libre

Lors de l'édition de liens, il est nécessaire d'ajouter l'option -lopenblas :

module load gcc/9.1.0module load openblasgfortran appel_blas.f90 -lopenblas

Documentation

📝 Site de référence (Netlib)
📝 Site de référence (OpenBLAS)
📝 Intel MKL documentation
📝 Intel MKL Link Line Advisor