Partager

HPC@Maths

HPC@Maths

L'objectif premier de cette équipe est de développer au sein de l’École polytechnique, et plus particulièrement au Centre de Mathématiques Appliquées (CMAP), une compétence en mathématiques appliquées et Calcul Haute Performance (HPC) articulée autour des axes d’excellence du laboratoire, en particulier l’analyse numérique et divers thèmes au sein du pôle analyse, mais pas seulement (SciML, UQ…). La complexité des phénomènes physiques simulés aujourd’hui est de plus en plus importante et nécessite des stratégies mathématiques innovantes et de grandes ressources de calcul.

Différentes expertises sont alors nécessaires afin d’appréhender ces nouveaux challenges : l’analyse mathématique et l’analyse numérique pour élaborer de nouvelles méthodes et algorithmes performants, une compréhension fine des architectures de calcul pour utiliser pleinement les ressources qui sont à notre disposition (GPU, FPGA, SIMD, CPU…) et enfin le développement de briques logiciel permettant de mettre en commun les deux expertises précédentes et diffuser ce savoir-faire vers l’extérieur (vers l’académique, mais également vers les industriels).

Notons que ces trois expertises sont en étroite interaction et se nourrissent l’une de l’autre ; cet écosystème est depuis quelques années en profonde mutation. La création de nouvelles générations de méthodes numériques en lien avec l’évolution des architectures de calcul est devenue primordiale pour le monde académique, mais aussi pour les industriels et se concrétise au travers la création de logiciels scientifiques open source.

Par conséquent, le calcul haute performance bien coordonné aux avancées en recherche dans le domaine mathématique est un fort vecteur d’innovation. Le développement de cette compétence au sein du CMAP de l’École polytechnique doit permettre de créer un pôle visible dans le domaine de la modélisation mathématique et numérique, couplé au calcul scientifique et intensif, avec un objectif affiché : une forte interaction et un transfert efficace des compétences et innovations vers les entreprises et en particulier les PME et ETI.

L’environnement de l’École polytechnique est le lieu idéal pour former les élèves à ces domaines émergents et ainsi disséminer l’expertise développée dans le cadre de l’Initiative. Enfin, une attention toute particulière sera portée sur la science ouverte afin de rendre les travaux réalisés dans ce contexte le plus transparents possible et accessibles pour tous. Celle-ci favorisera l’émergence de nouvelles collaborations académiques et industrielles.

La stratégie de l’équipe repose sur la construction d’un cercle vertueux Recherche - Formation (élèves) - Partenariats et s’appuie sur le développement d’algorithmes mathématiques innovants pour le calcul et le HPC.


Logiciels open-source développés au sein de l'équipe

  • samurai : https://github.com/hpc-maths/samurai

     

    L'utilisation de méthodes d'adaptation de maillage dans la simulation numérique permet de réduire considérablement l'empreinte mémoire et les coûts de calcul. Il existe différents types de méthodes : AMR basée sur les patchs, AMR basée sur les cellules, multirésolution basée sur les cellules ou basée sur les points, ...

    Différents logiciels open source sont à la disposition de la communauté pour gérer l'adaptation des maillages : AMReX pour l'AMR basée sur les patchs, p4est et pablo pour l'adaptation basée sur les cellules.

    La force de samurai est qu'il permet de mettre en œuvre toutes les méthodes d'adaptation de maillage mentionnées ci-dessus à partir de la même structure de données. Le maillage est représenté sous forme d'intervalles et une algèbre d'ensembles permet de rechercher efficacement des sous-ensembles parmi ces intervalles. Samurai offre également une interface souple et agréable permettant de mettre en œuvre facilement des méthodes numériques.

  • ponio : https://github.com/hpc-maths/ponio

    L’objectif de ponio est de fournir un ensemble de schémas en temps permettant de résoudre toute une collection d’EDO et d’EDP. Il est initialement écrit en C++ mais différentes interfaces seront ensuite disponibles pour l’utiliser dans d’autres langages fortement utilisés dans la communauté scientifique (Python et Julia par exemple). Le but est ici d’aborder les diverses stratégies d’intégration temporelle des EDP. La plus simple est la combinaison d’une stratégie de séparation d’opérateur et de méthode des lignes impliquant divers intégrateurs en temps classiques (RADAU5, ROCK4, IMEX…) ; l’objectif à termes est aussi de pouvoir aborder des techniques novatrice de couplage de code adaptatif à travers une interface (Conjugate heat transfer, combustion surfacique…) ainsi que des classes de schémas couplés temps-espace (Lax-Wendroff, OSMP, IMEX couplés temps espace avec de bonnes propriétés asymptotic preserving et stabilité…).

     
  • josiepy : https://github.com/hpc-maths/josiepy

     

    L’objectif est ici d’avoir un outil python capable de résoudre des problèmes 1D et 2D en volumes finis (voire Galerkin Discontinu) sur des maillages cartésiens potentiellement déformés de manière efficace dans l’optique d’un prototypage rapide. Le code est versatile mais a beaucoup été utilisé dans le cadre de la simulation des écoulements diphasiques avec dynamique d’interface et méthodes de moments.

  • pylbm : https://github.com/pylbm/pylbm

    pylbm est un package tout-en-un pour les simulations numériques utilisant des méthodes lattice Boltzmann. Ce paquet donne tous les outils pour décrire un schéma de lattice Boltzmann pour des problèmes 1D, 2D et 3D. Le formalisme de D'Humières a été choisi pour décrire le problème. Il est possible de lire des géométries complexes et de faire des calculs sur celles-ci.

    pylbm permet de définir de manière formelle le schéma lattice Boltzmann que l’on souhaite utilisé offrant la possibilité de faire des analyses de stabilité et de donner les équations équivalentes (équations physiques résolues). En effet, un des problèmes majeurs de ces méthodes est que l’on part du schéma pour remonter aux équations physiques que l’on souhaite résoudre. Dans les méthodes usuelles (différences finies, volumes finis, éléments finis, …), on part des équations que l’on discrétise pour arriver à notre schéma numérique. Ce changement de point de vue peut être très contraignant pour une personne qui n’est pas habituée. pylbm offre donc un ensemble d’outils pour une meilleure compréhension de ces méthodes.

    Enfin, partant de l’écriture formelle, pylbm est en mesure de générer le code numérique associé aux schémas décrits pour différentes architectures cibles : CPU, GPU avec mémoire partagée ou distribuée. Cette génération de code est facilement extensible.

     

Responsables : Loïc Gouarin et Marc Massot

Membres permanents

  • Maxime Breden
  • Vincent Giovangigli
  • Marc Massot
  • Teddy Pichard
  • Nicole Spillane

Ingénieurs de Recherche en calcul scientifique

  • Loïc Gouarin
  • Josselin Massot
  • Pierre Matalon
  • Laurent Series
  • Loïc Strafella

Cheffe de projet

  • Delphine Bueno

Post-Doctorants

  • Giuseppe Orlando

Doctorants

  • Ali Asad
  • Elise Fressart
  • Ward Haegeman
  • Arthur Loison
  • Clément Morhain
  • Zoubaïr Tazakkati

Chercheurs associés

  • Ruben Di Battista
  • Laurent François
  • Ludovic Goudenège
  • Benjamin Graille
  • Nicolas Grenier
  • Samuel Kokh
  • Roxane Letournel
  • Louis Reboul
  • Christian Tenaud