Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2018:01_11

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
commit:2018:01_11 [2018/01/11 11:14] – created papeleuxcommit:2018:01_11 [2018/05/04 16:48] (current) – [Commit - LPx - 11 Janvier 2018] boman
Line 1: Line 1:
-===== Commit - LPx - 11 Janvier 2018 =====+===== Commit 2018-01-11 ===== 
 + 
 +Initialisation des Threads MKL - Divers 
  
 ===== Initialisation des Threads : ===== ===== 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 [[https://software.intel.com/en-us/mkl-developer-reference-c-mkl-set-threading-layer|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). => suppression de toutes les commandes ''Blas/IntelTBB.setNumThreads(n)'' des cas tests
 +  * 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''
 +  * Correction des scripts ''battery.py'', ''ExperimentsClasses.py'' (opti) et we
 +===== Divers : =====
 +  * Ajout d'exemples d'utilisation des extracteurs valeurs moyenne sur éléments ''IFElementValueExtractor'' et valeurs aux Points d'intégration  ''IFGaussPointValueExtractor'' (dans cont2.py)
 +  * BVHTreeDrawer.cpp : Ajout de #include <vtkSmartPointer.h> (portabilité VTK 6.3)
 +  * computeGravityCenterAndMass : 
 +<code>
 +    //return {posCG, mass};//gcc 5.4 ne supporte pas encore le constructeur par liste
 +    return std::tuple<mtMath::Vect3, double>(posCG, mass);
 +</code>
 +  * 
 ===== Fichiers ajoutés/supprimés : ===== ===== Fichiers ajoutés/supprimés : =====
 <code> <code>
Line 9: Line 34:
 ===== Tests ajoutés/supprimés ===== ===== Tests ajoutés/supprimés =====
 <code> <code>
 +Deleted : apps\parallel\tubeDssTbb1Blas.py/tsc 
 +Deleted : apps\parallel\tubeDssTbbBlas1.py/tsc 
 +Deleted : apps\parallel\tubeIssTbb1Blas.py/tsc 
 +Deleted : apps\parallel\tubeMumpsTbb1Blas.py/tsc 
 +Deleted : apps\parallel\tubeMumpsTbbBlas1.py/tsc 
 +Moved : gen4\tests\meshme.py/tsc -> gen4\tests\parallel\meshme.py/tsc 
 +Moved : gen4\tests\Robo.png -> gen4\tests\parallel\Robo.png 
 +Moved : gen4\tests\geo1.py/tsc -> gen4\tests\parallel\geo1.py/tsc 
 +Moved : gen4\tests\marcus.py/tsc -> gen4\tests\parallel\marcus.py/tsc 
 +Moved : gen4\tests\papillon.py/tsc -> gen4\tests\parallel\papillon.py/tsc 
 +Moved : gen4\tests\papillon_polygon.txt -> gen4\tests\parallel\papillon_polygon.txt
 </code> </code>
  
commit/2018/01_11.1515665643.txt.gz · Last modified: 2018/01/11 11:14 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki