Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2018:06_01

Commit - LPx - 01 Juin 2018

BugFixes : restart facValuesManager - parametricExperimentSet

Restart & facValuesManages

  • Au commit 3067 j'avais ajouté (pour les tests SAB) un valuesManager qui extrait les valeurs au moment des facs.
  • Le travail n'était pas finalisé tant que le rechargement de ces valuesManager n'était pas fait lors des opérations de restart/remeshing. Le soucis provenait du fait que l'information sur le nombre de valeurs extraites n'existe pas dans Metafor (c'est le nombre de facs archivés, plus le nombre de pas).
  • J'ai donc ajouté un vecteur (optionnel) dans la classe “ValuesManager” qui conserve les numéros de pas d'archivage. Ce vecteur est sauvé dans les facs. Sa relecture permet de redimensionner les archivages à la bonne longueur en cas de restart.
  • Le même vecteur pourrait être utilisé pour un ValuesManager dont les moments d'extraction seraient choisis (tous les n pas (pour l'explicite) / toutes les n secondes / …)
  • ATTENTION : LES FACS ONT CHANGE & le code à changé ⇒ la relecture d'anciens facs risque fortement de planter !!!

Analyse paramétriques :

  • J'avais introduit il y a quelques temps la possibilité de faire tourner plusieurs calculs en même temps dans les analyses paramétriques (en réutilisant le système de threads & de queue de l'algorithme de battery.py) via la commande “expset.runMT(getNbTasks())”. Le nombre de tasks est relu de la batterie (ou de launch si on passe par launch.py pour lancer ces tests).
  • Néanmoins, j'avais observé que sous linux, tous les calcul étaient bien présent, mais certains restaient bloqués à 0% CPU. Au fur et à mesure que les premiers tests s'achevaient, les tests bloqués démarraient (et au final, le nombre de tests demandés tournaient en même temps).
  • Après pas mal de recherche et de tests, il semblerait que le problème se trouvait au niveau de du “subprocess.Popen” dont plusieurs occurences ne peuvent s'éxécuter en même temps. En ajoutant un “threading.lock” autour des commandes de Popen, le problème semble résolu (dites moi si vous voyez encore des soucis).
  • j'ai ajouté un répertoire d'analyse paramétriques en parallèle (apps/parametricParallel) pour tester la méthode sur une analyse paramétrique de tombe de bord fonction du gap entre matrice et poincon…

Fichiers ajoutés/supprimés :

Added : 
Deleted :
Moved : 

Tests ajoutés/supprimés

Adding: \oo_meta\apps\parametricParallel\
Adding: \oo_meta\apps\parametricParallel\init.py
Adding: \oo_meta\apps\parametricParallel\tombeBordEas2D_Param.py
Deleted : 
Moved : 

Luc Papeleux 2018/06/01

commit/2018/06_01.txt · Last modified: 2018/06/05 15:22 by papeleux