Resume
Experience
- July 2023-*
- 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)
- Training and educational material development
- Client support and maintenance
- CI/CD
- Applications development (wave-based inverse problems)
- 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 layer. This repository implements both in julia (for Flux.jl) and in python (for pytorch) a convolutional layer that has virtually a zero memory imprnt for training using randomized linear algebra to compute an unbiased estimate of the gradient with respect to the weights. Additionally, a byte only implementation of the ReLU layer leads to memry reduction by a factor of X2 for full networks.
- 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 Developped and automatized the deployement of Devito and JUDI images through CI (github actions).
- Knowledge of C, Linux, Bash, PyTorch, Azure, Latex, Markdown, Matlab, MPI, OPenMP, OpenACC
- HPC
- Devito: Weak and strong scaling benchmarks of Devito on on-premise (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
Transfered to Georgia Institute of Technology in January 2018 following my supervisor new position 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.
Additonal skills
Languages:
- French (native speaker)
- English (Advanced, PhD in USA)
Miscelanous CS:
- Linux, Shell script, Latex, Markdown, Github, Unix, Matlab