Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2015:08_25

Commit 2015-08-25

Nettoyage blas-lapack

Nettoyage blas-lapack

  • nettoyage des appels blas/lapack (dont certains étaient toujours via l'interface fortran)
  • Creation d'un fichier mtLapack.h gérant l'utilisation d'OpenBlas en remplacement de MKL
  • Nettoyage des interfaces fortran/lapack hors de mtBlas.h
  • Reprogrammation de matrix::pinv
  • Ajout d'une interface python (swig) de l'accès aux composantes (lecture/ecriture) des vecteurs, Matrix/SymMatrix pour générer des tests uniques des fonctions des classes (pas encore commité)
  • Ajout d'un fichier de configuration CMake utilisant les OpenBlas (Win64-vs2012-OpenBlas.cmake). Actuellement sans mumps ni mpi (libs pas compilées) ⇒ nouvelle version des libs nécessaire …

Blas NumThreads

  • nettoyage/renaming des fonctions de définitions du nombre de threads
    • OpenBlas : pas de distinctions
    • MKL : distingue le nombre de threads des blas (&lapack) / du solver pardiso / des FFT / des VML
  • Pour éliminer la confusion, on a désormais les fonctions suivantes :
    • Blas::setBlasNumThreads : défini le nombre de threads des fonctions Blas/Lapack
    • Blas::setPardisoNumThreads : défini le nombre de threads du solveur Pardiso (MKL ONLY)
    • Blas::setFFTNumThreads: défini le nombre de threads des FFT (MKL ONLY)
    • Blas::setVMLNumThreads: défini le nombre de threads des VML (MKL ONLY)
  • Vu les limitations de la parallélisation actuelle (interaction threads openMp(blas)/threads tbb)
    • Metafor est initialisé sur 1 thread.
    • l'argument “-k nbthreads” initialise le nombre de threads tbb et le solveur pardiso à “nbthreads”
    • Lorsqu'on aura un autre solveur parallèle, avec une gestion des threads n'interférant pas avec les tbb, je modifiearais le démarrage de Metafor en fonction…
Suppression de la définition du nombre de threads en dur des cas tests de la batterie (c'est via l'argument “-k” que le nombre de threads doit être défini !!!)

Divers

  • Nettoyage des includes de frequencyAnalysis
  • diminution de la taille des tests répertoire parallèle (de largeTube → tube)
  • diminution de la taille de apps/ale/coining3DMUMPS.py (je rappelle que la batterie doit tester la persistance des capacités, pas des niveaux de performances sinon son temps de calcul explose inutilement)
  • Suppression du test largeTubeMumpsTbbBlas4 : c'est le “-k” qui est maitre du nombre de threads …
  • Ajout d'un test tubeIssTbbBlas
  • Correction du ntot de la skyline (qui faisait un overflow par manque d'un cast)
  • Correction des workspacesDir de quelques tests de apps.remeshing2 afin qu'ils correspondent aux règles (le nom du workspace doit correspondre au module du test en remplacant les '.' par des '_') et que la suppression des workspaces se fassent correctement …

Fichiers ajoutés/supprimés

Added : oo_meta\CMake\win64-vs2012-OpenBlas.cmake
Added : oo_meta\mtMath\mtLapack.h
Renamed : 
Deleted :

Tests ajoutés/supprimés

Added : 
Renamed : oo_meta\apps\parallel\largeTubeDssTbbBlas.py => tubeDssTbbBlas.py
Renamed : oo_meta\apps\parallel\largeTubeDssTbb1Blas.py => tubeDssTbb1Blas.py
Renamed : oo_meta\apps\parallel\largeTubeDssTbbBlas1.py => tubeDssTbbBlas1.py
Renamed : oo_meta\apps\parallel\largeTubeMumpsTbbBlas.py => tubeMumpsTbbBlas.py
Renamed : oo_meta\apps\parallel\largeTubeMumpsTbb1Blas.py => tubeMumpsTbb1Blas.py
Renamed : oo_meta\apps\parallel\largeTubeMumpsTbbBlas1.py => tubeMumpsTbbBlas1.py
Renamed : oo_meta\apps\parallel\largeTubeSymDssTbbBlas.py => tubeSymDssTbbBlas.py
Renamed : oo_meta\apps\parallel\largeTubeSymMumpsTbbBlas.py => tubeSymMumpsTbbBlas.py
Deleted : oo_meta\apps\parallel\largeTubeMumpsTbbBlas

Luc Papeleux 2015/08/25

commit/2015/08_25.txt · Last modified: 2016/03/30 15:23 (external edit)