MKL

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

Sommaire

Description

Intel Math Kernel Library (MKL) est une solution commerciale développée par Intel. Elle contient plusieurs bibliothèques mathématiques hautement optimisées pour les microprocesseurs d'Intel, dont BLAS, LAPACK, ScaLAPACK et FFTW. Selon le vendeur, une grande partie des routines incluses dans MKL sont écrites en assembleur.

Intel MKL est l'une des bibliothèques mathématiques recommandées comme implantation BLAS et LAPACK sur la majorité des serveurs de Calcul Québec.

Utilisation de MKL

MKL fonctionne avec la majorité des compilateurs disponibles (dont GCC et Intel) et officiellement supportés sur les grappes de calcul de Calcul Québec. Pour l'utiliser dans votre application, vous devrez d'abord charger un module. Vérifiez la liste des modules disponibles sur le serveur que vous utilisez avec la commande

[nom@serveur $] module avail 2>&1 | grep -i mkl



Cas d'utilisation

MKL est divisée en plusieurs bibliothèques pour être modulaire. De plus, il existe plusieurs versions des mêmes bibliothèques afin de s'adapter à l'environnement de l'usager. Pour ces raisons, Intel offre un utilitaire appelé Math Kernel Library Link Line Advisor pour assister les utilisateurs avec le choix des bibliothèques. Nous vous recommandons fortement d'utiliser cet utilitaire afin de déterminer les bons arguments de compilation.

En particulier, MKL est disponible en version séquentielle et en version multitâches (multithread). La version séquentielle réalise les opérations mathématiques séquentiellement tandis que la version multitâches permet le calcul simultané des opérations mathématiques parallélisables. Par contre, certains programmes ne supportent pas les opérations parallèles par fils d'exécution (not thread-safe). Généralement, le concepteur du logiciel ou de la bibliothèque utilisée spécifie cette particularité dans la documentation.

Il est possible de se lier à MKL avec des liaisons statiques ou dynamiques. Généralement, il est préférable d'utiliser des liaisons dynamiques (voir [1]). Par contre, certains modules de MKL (tel que CDFT pour le calcul des FFT) ne sont disponibles que dans une archive à liaison statique.

Exemples

BLAS

L'interface par défaut de MKL fournit une implantation BLAS hautement optimisée pour le calcul de haute performance.

Note : comme les options de compilation et de liaison changent d'une version de MKL à l'autre, Intel fournit un outil web pour déterminer les bonnes options de compilation selon le cas. Nous vous suggérons de vous y référer.

LAPACK

La bibliothèque mkl_lapack contient une implantation optimisée de LAPACK. Puisque LAPACK nécessite une implantation de BLAS, il suffit d'ajouter ce paramètre à ceux utilisés pour BLAS.

Note: Comme les options de compilation et de liaison changent d'une version de MKL à l'autre, Intel fournit un outil web pour déterminer les bonnes options de compilation selon le cas. Nous vous suggérons de vous y référer.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager