Outils pour utilisateurs

Outils du site


logiciels:mkl:mkl-et-parallelisme

Ceci est une ancienne révision du document !


MKL et parallélisme

Voir cette page sous forme de diaporama.

Nous avons vu dans l'introduction à la MKL que cette librairie est par défaut en mode multi-threadé.

L'objet de cet article est d'exposer dans les grandes lignes :

  • les gains que vous pouvez en attendre
  • le fonctionnement de la couche de threading
  • les interactions avec votre code si vous utilisez déjà du threading
  • le bon usage sous l'ordonnanceur Slurm :!:

Fonctions threadées

  • Toute les fonctions de la MKL ne se prêtent pas à du multi-threading
  • Les familles de fonctions concernées sont :
    • Direct sparse solver
    • LAPACK : certaines fonctions
    • Level1 and Level2 BLAS : certaines fonctions
    • Level 3 BLAS et presque toutes les fonctions Sparse BLAS
    • Toutes les fonctions mathématiques VML
    • FFT
  • La liste exhaustive des méthodes est donnée dans le User's Guide, section Threaded Functions and Problems

Utilisation avec un programme threadé

Thread-safe

Nous rappelons que la MKL est thread-safe.

Autrement dit, si votre programme est déjà multi-threadé (quel que soit le moyen utilisé) et que vous faites appel à la MKL dans des threads, l'exécution du programme ne risque pas de “planter” ou de générer des résultats aléatoires.

Conflits possibles

Si votre programme utilise les compilateurs Intel et OpenMP, la MKL gérera parfaitement les inter-actions, car elle utilise la même librairie de parallélisation. C'est le cas général.

Par contre, si votre code utilise un autre mécanisme de multi-threading, ou un autre compilateur, des inter-actions malvenues surviendront. Le code fonctionnera, mais l'utilisation des ressources sera sous-optimisé, en générant plus de threads que le système n'a de ressources. Vous devez absolument consulter la documentation (section Avoiding Conflicts in the Execution Environment) pour gérer ce cas.

logiciels/mkl/mkl-et-parallelisme.1433344474.txt.gz · Dernière modification: 2015/06/03 17:14 de montap01