HPC@Maths
Head of the team : Loïc Gouarin et Marc Massot
Permanent members :
- Maxime Breden
- Vincent Giovangigli
- Marc Massot
- Teddy Pichard
- Nicole Spillane
Associate researchers :
- Ruben Di Battista
- Laurent François
- Ludovic Goudenège
- Benjamin Graille
- Nicolas Grenier
- Samuel Kokh
- Roxane Letournel
- Christian Tenaud
Research engineers in scientific computing :
- Loïc Gouarin
- Josselin Massot
- Pierre Matalon
- Laurent Series
Project manager :
- Marine Saux
PhD student, Post-Doctorls :
- Katia Ait Ameur
- Ali Asad
- Thomas Bellotti
- Ward Haegeman
- Arthur Loison
- Giuseppe Orlando
- Louis Reboul
- Zoubaïr Tazakkati
Research activities :
The primary objective of this team is to develop within the École polytechnique, and more specifically at the Centre de Mathématiques Appliquées (CMAP), a competence in applied mathematics and High-Performance Computing (HPC) articulated around the laboratory's axes of excellence, in particular, numerical analysis and various themes within the analysis pole but not only (SciML, UQ...). The complexity of today's simulated physical phenomena is increasing, requiring innovative mathematical strategies and extensive computing resources.
Different areas of expertise are required to meet these new challenges: mathematical and numerical analysis to develop new methods and algorithms, a detailed understanding of computing architectures to make full use of the resources available to us (GPUs, FPGAs, SIMDs, CPUs, etc.) and, finally, the development of software building blocks to pool the two previous areas of expertise and disseminate this know-how to the outside world (both academic and industrial).
It should be noted that these three areas of expertise interact closely and feed off each other; this ecosystem has been undergoing profound change for several years now. The creation of new generations of numerical methods, in line with the evolution of computing architectures, has become essential for both academia and industry and is reflected in the creation of open-source scientific software.
As a result, high-performance computing, well-coordinated with advances in mathematical research, is a strong vector for innovation. The development of this expertise within the École polytechnique's CMAP should create a visible cluster in the field of mathematical and numerical modeling, coupled with scientific and intensive computing, with a clear objective: strong interaction and effective transfer of skills and innovations to companies, particularly SMEs and ETIs.
The École polytechnique environment is the ideal place to train students in these emerging fields and to disseminate the expertise developed within the framework of the Initiative. Finally, particular attention will be paid to open science[1] to make the work carried out in this context as transparent as possible and accessible to all. This will encourage the emergence of new academic and industrial collaborations.
The team's strategy is based on building a virtuous circle of Research - Training (students) - Partnerships, and relies on the development of innovative mathematical algorithms for computing and HPC.
Open source software developed in the team :
- samurai
https://github.com/hpc-maths/samurai
The use of mesh adaptation methods in numerical simulation can significantly reduce the memory footprint and computational costs. Different types of methods exist: patch-based AMR, cell-based AMR, cell-based or point-based multiresolution, etc.
Various open-source software packages are available to the community to manage mesh adaptation: AMReX for patch-based AMR, p4est and pablo for cell-based adaptation.
The strength of samurai is that it enables all the above mesh adaptation methods to be implemented from the same data structure. The mesh is represented in the form of intervals, and a set algebra is used to efficiently search for subsets within these intervals. Samurai also offers a flexible, user-friendly interface for easy implementation of numerical methods.
- ponio
https://github.com/hpc-maths/ponio
The aim of ponio is to provide a set of schemes in time for solving a whole collection of ODEs and PDEs. It is initially written in C++, but various interfaces will later be available for use in other languages widely used in the scientific community (Python and Julia, for example). The aim here is to discuss the various strategies for the temporal integration of PDEs. The simplest is the combination of an operator separation strategy and a line method involving various classical time integrators (RADAU5, ROCK4, IMEX... ); the long-term objective is also to be able to tackle innovative adaptive code coupling techniques through an interface (Conjugate heat transfer, surface combustion...) as well as classes of time-space coupled schemes (Lax-Wendroff, OSMP, time-space coupled IMEX with good asymptotic preserving and stability properties...).
- josiepy
https://github.com/hpc-maths/josiepy
The aim here is to provide a Python tool capable of solving 1D and 2D finite volume (or even Discontinuous Galerkin) problems on potentially deformed Cartesian meshes in an efficient way, with a view to rapid prototyping. The code is versatile but has been used extensively in the simulation of two-phase flows with interface dynamics and methods of moments.
- pylbm
https://github.com/pylbm/pylbm
pylbm is an all-in-one package for numerical simulations using Boltzmann lattice methods. This package provides all the tools to describe a Boltzmann lattice scheme for 1D, 2D, and 3D problems. The D'Humières formalism has been chosen to describe the problem. It is possible to read complex geometries and perform calculations on them.
pylbm lets you formally define the lattice Boltzmann scheme you wish to use, enabling you to perform stability analyses and give equivalent equations (physical equations solved). Indeed, one of the major problems with these methods is that we start from the scheme and work our way back to the physical equations we wish to solve. In the usual methods (finite differences, finite volumes, finite elements, etc.), we start from the equations that we discretize to arrive at our numerical scheme. This change of point of view can be very restrictive for the unaccustomed user. pylbm therefore offers a set of tools for a better understanding of these methods.
Finally, starting from formal writing, pylbm is able to generate the numerical code associated with the schemes described for different target architectures: CPU, GPU with shared or distributed memory. This code generation is easily extensible.
[1] OpenScience : On pourra consulter en particulier le site https://eosc-portal.eu/ et la plaquette éditée par le CNRS en 2019 https://www.cnrs.fr/sites/default/files/press_info/2019-11/Plaquette_ScienceOuverte.pdf