Table des matières

Voir cette page sous forme de diaporama.

Librairie MKL

La librairie Intel Math Kernel Library (MKL) est une librairie de développement, pour des calculs mathématiques optimisées. Elle peut être utilisée par des personnes qui produisent leur programme de calcul en écrivant ces programmes dans les langages C, C++ ou Fortran.

La documentation de cette rubrique concerne donc essentiellement les développeurs.

Certains programmes installés sur CALI ont été compilés avec la MKL. Dans ce cas, la documentation du logiciel sur notre site précisera les conditions particulières à connaître.

Références

Les documents de référence concernant la librairie MKL sont disponibles sur le site d'Intel :

Cette rubrique n'a pas vocation à se substituer à ces documents, mais à apporter une courte introduction (en français) et à attirer votre attention sur quelques points importants.

Autres documentations

Contenu de la librairie MKL

Des librairies optimisées et parallélisées

La MKL contient des librairies mathématiques optimisées :

Vous pouvez remarquer d'ores et déjà que vous devrez tenir compte de la capacité au multi-threading automatique de la MKL . Vous devrez en tenir compte lors de la phase de compilation et lors de la phase d'exécution du programme.

Familles de procédures

Plusieurs familles de procédures sont contenues dans la MKL. Certaines sont des implémentations de librairies “bien connues”, antérieures à la MKL et qui sont toujours disponibles sous d'autres implémentations. La version MKL apporte en général des gains de performance. La liste complète de ces famille est disponible dans le guide de référence de la MKL. Citons :

Utiliser la MKL

Environnement

Sur CALI, vous devez suivre les instructions fournies sur intel-composer afin de savoir comment positionner l'environnement pour la MKL.

Compilateurs supportés

La MKL peut être utilisée avec différents compilateurs. Il n'est donc pas obligatoire d'utiliser la suite Intel, des programmes compilés avec la suite GNU pourront aussi être liés avec la MKL.

Modèle en couche

La MKL est conçue pour supporter différents compilateurs et interfaces, différentes implémentations d'OpenMP, différents types de processeurs.

Conceptuellement, on peut considérer que la MKL est composée de plusieurs couches pour permettre ces adaptations :

Couche d'interface

Couche threading

Nous reviendrons plus en détail sur la partie threading dans l'article mkl-et-parallelisme.

Compilation

Maintenant que vous avez à l'esprit quelques uns des détails de la MKL, nous allons voir comment réaliser la compilation et l'édition de lien d'un programme.

Vous devrez sélectionner plusieurs paramètres :

Plusieurs méthodes de compilation sont possibles, vous devrez choisir l'une ou l'autre.

Option -mkl pour compilateurs Intel

Librairie dynamique unifiée

Choisir les bonnes librairies

La dernière alternative consiste à sélectionner individuellement chacune des librairies pour chacune des couches :