Jean Zay : la bibliothèque INTEL MKL

Description

Intel MKL (Math Kernel Library) est une bibliothèque qui propose des routines mathématiques séquentielles et parallèles hautement optimisées. Les fonctions mathématiques de base comprennent BLAS, LAPACK, ScaLAPACK, BLACS, des solveurs creux et FFT.

Versions installées

  • Intel MKL 16.0.4
  • Intel MKL 18.0.1
  • Intel MKL 18.0.5
  • Intel MKL 19.0.2
  • Intel MKL 19.0.4
  • Intel MKL 19.0.5

Ces informations peuvent être retrouvées par la commande :

$ module avail intel-mkl

Environnement

Pour la commande module, les versions d'Intel MKL ne dépendent d'aucun environnement.

Par contre, nous vous recommandons d'utiliser chaque version de la bibliothèque Intel MKL avec la version correspondante du compilateur Intel voir les modules intel-compiler/…).

Pour obtenir les informations sur les chemins d'accès aux librairies, il suffit d'utiliser la commande suivante :

$ module show intel-mkl

Utilisation

La bibliothèque est accessible par module.

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 intel-mkl

ou pour charger une version spécifique :

$ module load intel-mkl/19.0.5

Édition des liens

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

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

Voici un exemple pour la bibliothèque ScaLAPACK :

$ module load intel-mkl
$ ifort appel_scalapack.f90 -L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 \
                            -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm

Documentation