Outils pour utilisateurs

Outils du site


logiciels:mkl:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
logiciels:mkl:start [2015/06/03 08:42]
montap01 [Des librairies optimisées et parallélisées]
logiciels:mkl:start [2015/06/29 17:39] (Version actuelle)
montap01
Ligne 1: Ligne 1:
-~~SLIDESHOW~~+====== Math Kernel Library ======
  
-====== Librairie MKL ======+Cette rubrique vous donnera des indications sur l'utilisation de la librairie Intel //Math Kernel Library// ou MKL.
  
-La librairie MKL est une librairie de développement. 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. +~~DIR?cols=page;desc~~
- +
-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 : +
-  * [[https://software.intel.com/en-us/mkl_11.2_ug_lin | User's Guide for Intel® Math Kernel Library 11.2 for Linux OS]]  +
-  * [[https://software.intel.com/en-us/mkl_11.2_ref | Reference Manual for Intel® Math Kernel Library 11.2 ]] +
- +
-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. +
- +
-===== Contenu de la librairie MKL ===== +
-==== Des librairies optimisées et parallélisées ==== +
-La MKL contient des librairies mathématiques //optimisées// :  +
-  * elle tirera le meilleur partie des dernières générations de processeurs Intel +
-  * elle utilise de façon étendue les possibilités de //multi-threading// (calcul parallèle sur des architectures multi-coeurs SMP) +
-  * certains composants de la MKL sont également conçus pour du calcul parallèle distribué (via MPI) +
- +
-<note important>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. +
-</note> +
-==== 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 [[https://software.intel.com/en-us/mkl_11.2_ref | le guide de référence de la MKL]]. Citons : +
-  * BLAS (Basic Linear Algebra Subprograms) +
-  * LAPACK 3.5 +
-  * ScaLAPACK (utilisable sur architecture à mémoire distribuée) +
-  * Basic Linear Algebra Communication Subprograms (BLACS) +
-  * General Fast Fourier Transform (FFT), avec implémentation de l'interface FFTW3 +
- +
-===== Utiliser la MKL ===== +
-==== Environnement ==== +
-Sur CALI, vous devez suivre les instructions fournies sur [[:logiciels:intel-composer]] afin de savoir comment positionner l'environnement pour la MKL. +
-  * Par défaut, le système positionne l'environnement pour la dernière version stable de la MKL +
-  * Vous **ne devez pas** suivre la documentation d'Intel concernant la configuration des variables d'environnement +
- +
-==== 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 de //threading// +
-  * couche de calcul +
- +
-==== Couche d'interface ==== +
-  * Sélectionne le type d'entier utilisé dans votre code +
-    * Pour des entiers 32-bit (mode par défaut), choisir l'interface LP64 +
-    * Pour des entiers 64-bit, choisir l'interface ILP64. Ce mode est sélectionné soit en utilisant des entiers explicitement 64-bit dans le code (''INTEGER*8'' en Fortran), soit en utilisant une option du compilateur (''-i8'' en Fortran) +
-  * Si vous utilisez un autre compilateur que ceux d'Intel, certaines parties doivent être adaptées +
- +
-==== Threading ==== +
- +
-sss+
  
logiciels/mkl/start.1433313772.txt.gz · Dernière modification: 2015/06/03 08:42 de montap01