Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2018:01_11

This is an old revision of the document!


Commit - LPx - 11 Janvier 2018

Initialisation des Threads MKL - Divers

Initialisation des Threads :

  • Depuis la migration de Metafor sous VS2015 et le link des librairies mkl en utilisant le modèle “Single Dynamic Library” (soit le link via la lib “libmkl_rt.lib” qui détermine au RunTime quelle modèle de thread utiliser), j'avais noté que Metafor réutilisait la lib OpenMp de intel (iomp) pour les blas en plus de Tbb. Le choix de la lib de thread n'était donc pas fonctionnel.
  • Il se fait que le choix du modèle de thread doit se faire avant tout autre appel à la moindre routine mkl et ne peut plus être modifié par la suite (voir mkl_set_threading_layer)
  • En remontant le choix du modèle de thread au plus tôt de l'execution de Metafor (au chargement de la dll mtMath), la sélection redevient effective. Elle se fait à travers l'argument -k nbThread :
    • nbThreads == 1 ⇒ librairie Séquentielle : MKL_THREADING_SEQUENTIAL
    • nbThreads > 1 ⇒ librairie Threading Building Blocks : MKL_THREADING_TBB
    • nb : j'ai ajouté une option de metafor -mklThreadLayer MTL avec MTL :
      • SEQ : MKL_THREADING_SEQUENTIAL
      • TBB : MKL_THREADING_TBB
      • IOMP : MKL_THREADING_INTEL (intel OpenMp)
      • GNU : MKL_THREADING_GNU (si compilé avec gcc)
  • La définition du nombre de threads devant être fixé au démarrage de Metafor, toutes les fonctions de définition du nombre de threads ne sont plus interfacées vers python (via SWIG).
  • Le nombre de threads TBB et MKL est définitivement unifié (les MKL utilisant les threads TBB définis d'autre part, …). Les tests de apps/parallel effectué avec un nombre de threads différents entre TBB et Blas ont été supprimés.
  • Pour continuer à tester gen4 en parallèle, j'ai déplacé quelques tests gen4 dans gen4.tests.parallel

Divers :

  • Ajout d'exemples d'utilisation des extracteurs valeurs moyenne sur éléments IFElementValueExtractor et valeurs aux Points d'itnégration IFGaussPointValueExtractor (dans cont2.py)

Fichiers ajoutés/supprimés :

A : 

Tests ajoutés/supprimés



Luc Papeleux 2018/01/11

commit/2018/01_11.1515667773.txt.gz · Last modified: 2018/01/11 11:49 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki