Support d'exécution à base de tâches et programmation de haut niveau pour la simulation par éléments finis

Résumé

L'équipe STORM (Inria/LaBRI) travaille à la conception de supports d’exécution d’applications scientifiques sur des machines de calcul parallèles et distribuées, dans le domaine que l’on nomme calcul intensif.

STORM collabore avec le département Calcul Haute Performance (HPC) du laboratoire SIMULA en Norvège. SIMULA est le principal porteur de l’environnement FEniCS pour le développement d’applications de simulation numérique par la méthode des éléments finis dans des domaines tels que la mécanique des fluides, par exemple. La particularité de FEniCS est de proposer un environnement de programmation de haut niveau permettant à des personnes non spécialistes en informatique de développer rapidement des codes de simulation efficaces.

Le support exécutif StarPU, développé par l'équipe STORM, offre notamment la capacité d’ordonnancer des tâches simultanément sur des processeurs classiques et sur des accélérateurs tels que les processeurs graphiques (GPU) qui délivrent une puissance de calcul inégalée actuellement. Pour cela, StarPU assure la modélisation des performances des tâches sur les différentes unités de calcul disponibles et exploite ces modèles de performance pour guider l’ordonnancement des tâches sur les unités les plus appropriées, ce que l’on appelle l’ordonnancement hétérogène.

Objectifs

Une première étape de l’adaptation de l’environnement FEniCS au-dessus de StarPU a été réalisée durant l'été 2022. L’objectif de ce stage est maintenant de cibler des cas applicatifs plus divers en termes de classes de problèmes et de type d'éléments finis, et parallèlement d’aborder des cas plus vastes et plus dynamiques. L’idée est d’une part d'élargir le spectre de problèmes accessible via une approche générique de la parallélisation à base de tâches, en tirant notamment parti du nouveau noyau C++ “DOLFINx” de FEniCS. D’autre part, il s’agit d’exploiter les capacités d’exécution distribuée de StarPU pour être capable de traiter des cas applicatifs excédent la capacité mémoire d’un seul nœud. Enfin, l'étude de cas applicatifs évolutifs apportera une problématique supplémentaire d'équilibrage de charge de calcul au cours de la simulation.

Le stage s’effectuera dans le cadre de la collaboration STORM — SIMULA HPC, en coopération avec nos collègues de SIMULA. Il pourra donner lieu à une visite de travail dans les locaux de SIMULA à Oslo, en Norvège, pour interagir directement avec les développeurs de l’environnement FEniCS.

Mots-clés:

Calcul haute performance, parallélisme, programmation par tâches, simulation numérique, accélérateur, GPU

Pré-requis:

  • Maîtrise de la programmation en langages C et C++
  • Maîtrise du développement en environnement Unix
  • Bon niveau d’anglais oral et écrit

Contacts:

  • Olivier Aumage (olivier.aumage@inria.fr) Centre de recherche Inria Bordeaux – Sud-Ouest 200 avenue de la vieille tour 33405 TALENCE

Lieu du stage:

  • Inria Bordeaux, équipe STORM
  • Possibilité de visite au laboratoire SIMULA, à Oslo en Norvège

Référence: