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