L’adaptativité pour un solveur de l’équation de Vlasov Hoenen Olivier hoenen@icps.u-strasbg.fr LSIIT – ICPS – Projet INRIA CalVi
Plan Équation de Vlasov Algorithme adaptatif Contexte scientifique Schéma de résolution Algorithme adaptatif Transformations Optimisations Étude de la parallélisation Distribution Équilibrage de charge
Contexte scientifique Physique des plasmas et faisceaux de particules Fusion thermonucléaire contrôlée (projet ITER) Espace des phases (6D + t) Équation de Vlasov Équation aux dérivées partielles (EDP) Pas de solution analytique méthode de résolution numérique
Schéma de résolution Méthode semi-Lagrangienne Propriété : « les valeurs de la fonction de distribution sont constantes le long des caractéristiques » Basée sur un maillage de l’espace des phases Couplée avec un solveur de champ électrique Interpolation par éléments finis bi-quadratiques A-1
Algorithme adaptatif Basé sur un maillage dyadique Décomposition en base 2 de l’espace des phases Prédiction du maillage À partir du maillage au pas de temps précédent La fonction de distribution est calculée aux nœuds du maillage, la prédiction vise à mailler finement dans les zones à fort gradient, et grossièrement pour celles à faible gradient Compression du maillage Pour éliminer les cellules trop finement prédites
Prédiction du maillage cellule cible de même taille que cellule source on raffine cellule source plus fine que cellule cible STOP cellule cible plus fine que cellule source on raffine A-1 A-1 A-1
Compression du maillage
Transformations algorithmiques Prédiction et compression sont récursives Consistance du maillage gérée implicitement Parcours hiérarchique et local des éléments Mais performances réduites Dé-récursivation Objectif : conserver les bonnes propriétés du parcours récursif mais avec des performances d’algorithme itératif Utilisation classique d’un pile pour retrouver le contexte de la récursivité, ou plus simplement d’un tableau : de 4 éléments par niveau pour la prédiction d’un compteur de cellule et d’un booléen par niveau pour la compression
Structure de données Tableaux à 2 niveaux Coût réduit pour des accès aléatoire à des éléments Modularité du niveau grossier pour s’adapter à la simulation Le creux des niveaux fins est virtuel adaptivité perfectible en terme d’allocation mémoire (dépend du niveau grossier choisi) Optimisation de la fonction de recherche Stockage du niveau de la cellule couvrante présente dans le maillage pour chaque cellule fine Recherche de la cellule du maillage contenant un point donné avec une complexité minimum
Étude de la parallélisation Caractéristiques du solveur adaptatif Parallélisme de données, communications très nombreuses, non prédictibles et de petite taille La charge du calcul dépend linéairement du nombre d’interpolations, donc du nombre de nœuds (≈ cellules) Objectif : obtenir un solveur scalable Partionnement dynamique du maillage Équilibrage de charge Minimisation des communications Problème NP-complet
Distribution des données Subdivision en régions Union de cellules Partition du domaine Bijection région processeur Un processeur possède localement sa propre vision du maillage Chaque cellule est estampillée par un numéro de processeur Redéfinition dynamique des régions pour maintenir leurs bonnes propriétés
Propriétés des régions Équilibrage : même charge de calcul sur chaque processeur Minimisation des temps de synchronisation Utilisation équitable de la mémoire Forme : connexe et compacte Réduction du volume des communications Amélioration de la localité des données
Courbe de Hilbert Courbe de remplissage de surface (SFC) Ramène le problème nD à un problème simple 1D Propriétés de la courbe de Hilbert : Calculée en base 2 correspond bien au maillage dyadique Construction récursive sur un maillage creux Extensible en dimension Conserve la localité
Équilibrage de charge Calcul de la charge idéale Charge totale / nombre de processeurs Calcul du nombre d’éléments à « migrer » Somme des différences entre charge idéale et charge locale des processeurs suivants (resp. précédents) Mise à jour des régions par chaque processeur Échange de cellules avec les voisins dans la courbe Choix implicite des éléments à migrer (extrémités de courbe)
Mise à jour des régions
Poursuite des travaux Validation expérimentale 2D/4D Efficacité de l’adaptatif par rapport à l’uniforme Architectures à mémoire partagée Étude de la parallélisation de la méthode sur des machines de type cc-NUMA Modèle de programmation OpenMP Parallélisation hybride…