Résumé
Scientific computing researcher and software architect
I specialize in high-performance scientific software, numerical methods for inverse problems, and scalable computing across CPUs, GPUs, clusters, and cloud platforms.
Experience
- July 2023–Present
- Senior Solution Architect: DevitoCodes Ltd.
- Core developer of Devito and DevitoPro
- Symbolic and functional API for stencil computation
- Cross-platform code generation (MPI, OpenMP, OpenACC, CUDA, HIP, SYCL) for high performance computing
- Training and educational material development
- Client support and maintenance
- CI/CD
- Applications development (wave-based inverse problems)
- Cloud computing (AWS, Azure) and orchestration
- July 2020– June 2023
- Postdoctoral Fellow: Georgia Institute of Technology, Atlanta, GA
- High performance/low memory randomized linear algebra for backpropagation based inverse problems
- Cloud HPC for separable problems (task parallel)
- Supervising the PhD and MSc students
- Managing and developing the software stack for the Lab (slimgroup)
- Machine learning for geophysical and medical wave-equation based inverse problems
- HPC for machine learning
- Geological Carbon Storage seismic monitoring
Computational experience
- Open Source
- Devito: A symbolic domain specific language (DSL) for stencil computation with just-in-time compilation and code generation. Achieves state of the art performance while providing a high-level mathematical interface to the users for the development of stencil based applications.
- JUDI: Linear algebra high level API for wave-equation based inversion. This package is built on top of Devito to have high performance wave-equation solvers. A new additional Azure batch extension was developed for scalability JUDI4Cloud.
- XConv: High-performance, low-memory convolutional layers for Julia (Flux.jl) and Python (PyTorch). Randomized linear algebra provides an unbiased gradient estimate with a minimal training-memory footprint.
- dfno: Model parallel (MPI model decomposition) implementation of Fourier Neural Operators for PyTorch. Extension of distdl, a model parallel extension of PyTorch.
- InvertibleNetworks.jl: Native Julia implementation of invertible networks for variational inference, generative models and normalizing flows.
- Programming Languages
- Python: Main programming language for the development of Devito and machine learning applications.
- Julia: Heavy development of research software at Georgia Tech (slimgroup) in Julia
- Docker: Developed and automated the deployment of Devito and JUDI images through CI with GitHub Actions.
- Knowledge of C, Linux, Bash, PyTorch, Azure, LaTeX, Markdown, Matlab, MPI, OpenMP, and OpenACC.
- HPC
- Devito: Weak and strong scaling benchmarks on on-premises (Imperial College) and cloud (Azure) hardware.
- JUDI: Implementation and deployment at scale of JUDI on clusters and Azure Batch (up 300 nodes).
- DGX A100: Slurm configuration and maintenance of the Lab’s DGX A100-40GB (8x).
- Cloud (2018-): Serverless and clusterless framework for task parallel inverse problems on AWS and Azure.
- Perlmutter (2022-): Scaling of MPI-parallel Fourier Neural Operator on Perlmutter (and previously Summit).
- Optimum (2015-2018): Early PhD 50 nodes cluster. Development of parallel Matlab seismic inverse problem algorithms (FWI/RTM).
- YEMOJA (2017-2018): Part of a collaboration with SENAI-CIMANTEC. Scaling of our Matlab and Julia framework to hundred of nodes.
Education
- 2018–2020
- PhD, Computer Science; Georgia Institute of Technology, Atlanta, GA Thesis title: Modeling for inversion in exploration geophysics Link Numerical and computational methods for large scale simulation based inverse problems and machine learning
- 2013–2018
- PhD, Earth Science; University of British Columbia, Canada Transferred to Georgia Institute of Technology in January 2018 following my supervisor’s move there.
- 2016 Feb-Aug
- Visiting PhD, Computer Science; Imperial College London, UK Automatic code generation for geophysical exploration applications with finite differences
- 2011–2013
- MSc, Applied Mathematics; Universite de Rennes 1, Rennes, France Valedictorian Required coursework: Calculus, Numerical Methods, PDE Resolution, Optimization, C/C++ Computing, Mathematics Modeling and Simulation, Finite Element Method* Elective coursework: Fluid Mechanics, Continuum Mechanics and Thermo- mechanics, Bio-mechanics, Geophysics Modeling*
- 2008–2011
- BSc, Aeronautical Engineering, ENSICA-ISAE, Toulouse, France Leading French Aeronautical Engineering School. Required coursework: Mathematics, Mechanics, Continuum Mechanics, Structures Mechanics, Signal Processing, Thermodynamics, Fluid Mechanics, Java programming* Elective coursework: Estimation Methods, Earth Observation Satellites, Microwaves Processing*
- 2006–2008
- Classe Preparatoires; Lycee Chateaubriand, Rennes, France Advanced undergraduate preparatory program for national ranking entry exam.
Internships
- Summer 2013
- Research internship; ONERA, Toulouse, France Scattering patterns of atmospheric dust clouds analysis with the Discrete Dipole Approximation (DDA) method.
- Summer 2012
- Research internship; INRIA, Grenoble, France Intern in NANO-D department at INRIA-Grenoble. L2-SVM for protein interactions. Runtime and accuracy improvement of the C implementation and algorithmic development.
- Summer 2011
- Internship, Aeroconseil, Toulouse, France Developed an interface for aerodynamics calculus in JAVA. Reading and implementation of Excel and Scilab scripts through the interface.
Additional skills
Languages:
- French (native speaker)
- English (Advanced, PhD in USA)
Additional computing:
- Linux, shell scripting, LaTeX, Markdown, GitHub, Unix, and Matlab