# HPC@Maths

The main 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 combine the two previous areas of expertise and disseminate this know-how externally (to academia, but also to industry).

It's worth noting that these three areas of expertise interact closely and feed off each other; this ecosystem has been undergoing profound change for some years now. The creation of new generations of numerical methods in conjunction with the evolution of computing architectures has become of prime importance to 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 at CMAP should create a visible pole in the field of mathematical and numerical modelling, coupled with scientific and intensive computing, with a clear objective: strong interaction and efficient 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, 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 developped in the team**

**samurai**: https://github.com/hpc-maths/samuraiThe 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/ponioThe aim of ponio is to provide a set of time schemes 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 scientific computing (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/josiepyThe 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 efficiently, 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/pylbmpylbm is an all-in-one package for numerical simulations using lattice Boltzmann methods. This package provides all the tools to describe a lattice Boltzmann 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 (solved physical equations). 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.

**Team leaders :** Loïc Gouarin et Marc Massot

**Permanent staff **

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

**Research engineers**

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

**Project manager**

- Delphine Bueno

**Post-Doctoral students**

- Giuseppe Orlando

**PhD students**

- 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