Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2018:09_25

Commit - LPx - 25 Septembre 2018

Bug Fix Parallelisation ALE

Parallelisation ALE :

  • pour paralleliser l'ALE, Yannick a adapté la gestion de la DB pour éviter de devoir réallouer des entrées dans la DB à l'intérieur de boucle parallèle et donc qu'un thread n'essaye d'utiliser une valeur avant qu'elle n'ai été allouée
  • pour plus d'info : se référer au commit 3093 de Yannick
  • Le soucis intervenait dans le ALETransferStep::toDofSet()
  • La cause : la fonction PointersToSets::reserveSet() testait la nécessité de réserver des positions dans les différents DBSets sur base de leur taille antérieure. Or avant le ToDofset, les vecteurs “Remeshed” sont vides (⇒ pas de réservation)
  • J'ai remplacé les tests basés sur la taille par des tests basés sur les algo définis dans le modèle (actuellement uniquement ALE et Thermo, il faudrait faire des tests spécifiques pour les vecteurs “LagrangianSet” et “oldResSet3”).
  • Une réflexion sur la taille optimale des différents vecteurs devrait être posée (actuellement j'ai joué la sécurité en gardant les tailles max).

tests :

  • Ajout d'une option “p['useJacobi'] = False” au modèle de profilage ALE qui si elle est mise à True utilise Jacobi dans le “Laplacian2DReZoner” soit un rezoner parallèle.
  • Cette option est accompagnée d'une désactivation de la relaxation (rezoner.setRelaxation(1.) au lieu de rezoner.setRelaxation(1.5)) qui empèche la convergence
  • Ajout d'un test de profilage ALE en parallèle “rollForming.parallelBattery.u6ALESRIPR”

Divers :

  • adaptation de timers2CSV.py pour lire les fichiers timers.txt et gtimers.txt (adapté à l'ALE uniquement)

Fichiers ajoutés/supprimés :

Added :
Deleted : 
Moved : 

Tests ajoutés/supprimés

Adding: oo_nda/rollForming/parallelBattery/u6ALESRIPR.py
Deleted : 
Moved : 

Luc Papeleux 2018/09/18

commit/2018/09_25.txt · Last modified: 2018/09/25 17:25 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki