240 likes | 357 Views
ANR PARMAT Optimisation & Parallélisation Lakimoca A. De Backer LMPGM, Université Lille 1 EDF-MMC Mars 2009. Parallélisation Lakimoca.
E N D
ANR PARMAT Optimisation & Parallélisation Lakimoca A. De Backer LMPGM, Université Lille 1 EDF-MMC Mars 2009
Parallélisation Lakimoca Lakimoca est un code de simulation de l'évolution spatio-temporelle du dommage d'irradiation à l’échelle (100 nm)3,qui est utilisé pour l’étude du vieillissement des aciers Les simulations actuelles arrivent à saturation Début de l’optimisation, octobre 2008 : • Etude préliminaire sur la cinétique du code • Bibliographie sur les stratégies de parallélisation • Débroussaillage du « First Passage » • Optimisation « au coup par coup »
ième événement Γi 0 Γtotale U×Γtotale LakimocaMonte Carlo Cinétique d’objets While (t < tend) choix_evenement mise_a_jour(t) case 1 : mouvement 2 : emission 3 : irradiation bcq d’objets mais peu fréquent recombinaison Link Cell if (necessaire) delete(obj) « dégringoler » le bas des listes if (necessaire) recalculer sum_proba parcourir la liste d’objets recalculer Link Cell
Etude préliminaire Fer + 0.003 % défauts, irradiation faible, temps longs Entrée: Irradiation, Taux fixe Sortie: Annihilation Recombinaison Taux lié à la diffusion: Fonction de la température Deux régimes en fonction du rapport, r = irradiation/diffusion Basse température, 100 K --- Haute température, 573 K ~ 1 --- ~ 10-13 t >> --- t << peu d’itérations --- beaucoup d’itérations beaucoup d’objets --- peu d’objets
Temps physique en cours de simu t = 1/( irradiation + i ) Temps, dpa et nombre de défauts augmentent très vite t >> Mais car il y a de plus en plus d’objets
Tous les défauts mobiles disparaissent avant l’occurrence d’une nouvelle irradiation t << Mais car le nombre d’objets diminue jusqu’à la nouvelle cascade
Optimisation • Basse température ou forte irradiation beaucoup d’objets parallélisation • Haute température accélération de la diffusion First Passage • Pourquoi paralléliser à HT ? Pour une boîte plus grande Condition aux limites périodiques = « irradiation pulsée » très peu de gros amas = statistique tronquée densité de dislocations trop grande MAIS que deviendra la cinétique du code ???
Parallélisation • Partition de la boîte en super-cellules, SC • N Monte Carlo simultanés • Communications entre les PE pour le transfert d’objets et la mise à jour du « link cell » • t sont différents dans chaque SC • Chaque nouvelle itération désynchronise les SC • Evénements aux frontières peuvent corrompre l’histoire : conflits de causalité
Réponses de la bibliographie • Synchronisation des PE grâce aux « barrières » à t + delta_t nombre d’itérations différent sur chaque PE • Synchronisation forcée par ajout de l’événement nul de probabilité adaptée • Traitement des conflits de causalité analyse de l’histoire à posteriori
Γi = Γmax SCi Évé. nul SCj Evénement nul E. Martinez … J. Marian, 2007 Que faire en cas de conflits • Rejet de l’histoire corrompue et redémarrage au « premier » conflit • Boucle de relaxation compte tenu de la connaissance de l’histoire, S. G. Eick …B. D. Lubachevsky, 1993
Algorithme asynchroneB. D. Lubachevsky • « seuls les traînards travaillent » « virtual time horizon » Evénement Interaction temps temps Corruption ! Site / objet Site / objet Autorisés à avancer Autorisé à avancer (a) 1 à la fois (b) avance multiple
Time Warp • Tous les PE avancent « à leur rythme » • Optimisme : passage de messages d’informations et de démentis Hybrid Asynchrone • Zone « bouclier » sur les bords et on attend les voisins si on doit la modifier • pas applicable à Lakimoca • Y. Shim, J. G. Amar, J. Comput. Phys. 212 (2006) 305-317
Stratégie pour Lakimoca • Boucle MC ~ 2 s • Temps de communication ~ latence Blue Gene ~ 10 s / cluster ~ 200 s 10 / 100 itérations « isolées » • Est-ce réaliste ? taux de passages de frontière ? quels sont les problèmes ?
Purement lié à la diffusion ~ 2 – 20 % des événements occasionnent un changement de SC • Plus de 80 % retraversent la frontière après moins de 10 sauts Elargissement de la frontière SC2 : Suit ses objets jusque là Voit jusque là SC2 SC1 SC1 : Suit ses objets jusque là Voit jusque là double compétence Zone fantôme
Corruption de l’histoire SCj où t = tj > ti SCi où t = ti tj = 1/( irradiation + i ) non modifié « à temps » Recombinaison non réalisée et/ou tj non modifié à temps Événement lié au nouvel objet non traité
Stratégie d’identification du « vrai conflit inévitable » • Mémorisation de l’histoire • Utilisation de l’événement nul: • une « réserve » pour les modifications de j • Correction des événements non-traités • Correction de l’histoire a posteriori • Accepter un « biais » par rapport au KMC séq hypothèse : peu de « vrais conflits »
Accélération de la diffusionFirst Passage,… V. V. Bulatov, … Phys. Rev. Let. 97, 230602 (2006). • domaines de protection • probabilité de First Passage • position anticipée • construction d’un échéancier
Lakimoca • domaine de protection • probabilité de First Passage • construction d’un échéancier • position anticipée • taille limitée par la présence de pièges et optimum « non -géométrique » car plusieurs ordre de grandeur de diffusion • calculée par Monte Carlo sur le réseau discret facile et flexible • assez perturbant pour Lakimoca • Ok avec « cube » anticipé et probabilités cumulées pour tirage aléatoire rapide MAIS donné l’idée de « micro-sauts » (plutôt que « macro-sauts ») … ! Probabilités différentes de celle du first passage ! ! Question de la disparité des probabilités de diffusion !
Micro-saut • idée : remplacer x sauts discrets par un grand • + t’ = x t • – sites voisins non-équiprobables • + sélection rapide : probabilité cumulée d’atteindre le cube de dimension a a a en x sauts • + nombre d’appels à recomb() réduit d’un facteur x • – comment évaluer la valeur de x autorisée • + on accède facilement aux distances aux plus proches objets lors du dernier appel de la fonction recomb() • + +
Profilage au cas par cas • Observations pragmatiques : quels sont les fonctions les plus coûteuses pour chaque nouvelles simulations • Suppression de certains appels à sqrt() • Prise en compte contiguïté des données en mémoire (dans la parcours des tableaux) • Suppression de l’appel systématique à une partie de la fonction recomb() grâce à un critère de distance vis-à-vis de « grands » objets peu mobiles • Groupement d’objets pour accélérer la recherche de l’événement MC … en cours
Irradiation aux électrons lame mince (surface en z) flux de 1.5 10-4 dpa/s T=473K box 100x100x1000 Simulation de 1200 à 1220 secondes Version Temps de calcul o119 813 sec o120e (après optimisation) 720 sec % cumulative self self total time seconds seconds calls s/call s/call name 75.10 542.13 542.13 74683458 0.00 0.00 choix_event 6.33 587.85 45.72 161081 0.00 0.00 calc_obj_sum_proba 4.00 616.71 28.86 135002 0.00 0.00 delete_obj 3.63 642.94 26.22 74754004 0.00 0.00 recomb 1.71 655.27 12.33 74608208 0.00 0.00 one_move 1.51 666.20 10.93 7470 0.00 0.00 LC_find_ncell 1.28 675.43 9.23 143113926 0.00 0.00 i_ii_recomb 1.01 682.73 7.30 1 7.30 720.78 lkmc_obj_steps 0.97 689.76 7.03 74683458 0.00 0.00 do_one_event 0.94 696.56 6.80 74558513 0.00 0.00 sink_grain_boundary 0.88 702.92 6.36 44672518 0.00 0.00 LC_chg_cell Travail en cours (grouping method) pour optimiser choix_event()
Scaling avec la taille de boite Irradiation aux électrons lame mince flux de 1.5 10-4 dpa/s T=473K box 200x200x1000 Simulation de 1200 à 1220 secondes Version Temps de calcul Temps de calcul 100x100x1000 200x200x1000 o119 813 sec 6135 sec (3252 sec si x4) o120e (après optimisation) 720 sec 5308 sec (2280 sec si x4) BOX 100x100x1000 % cumulative self self total time seconds seconds calls s/call s/call name 75.10 542.13 542.13 74683458 0.00 0.00 choix_event 6.33 587.85 45.72 161081 0.00 0.00 calc_obj_sum_proba 4.00 616.71 28.86 135002 0.00 0.00 delete_obj 3.63 642.94 26.22 74754004 0.00 0.00 recomb 1.71 655.27 12.33 74608208 0.00 0.00 one_move 1.51 666.20 10.93 7470 0.00 0.00 LC_find_ncell 1.28 675.43 9.23 143113926 0.00 0.00 i_ii_recomb 1.01 682.73 7.30 1 7.30 720.78 lkmc_obj_steps 0.97 689.76 7.03 74683458 0.00 0.00 do_one_event 0.94 696.56 6.80 74558513 0.00 0.00 sink_grain_boundary 0.88 702.92 6.36 44672518 0.00 0.00 LC_chg_cell
Irradiation sous flux de neutrons Irradiation en volume flux de cascade T = 573 K Simulation de 250.000 à 270.000 secondes Version Temps de calcul o119 2270 sec o120e (après optimisation) 376 sec gain facteur 6