Table des matières
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