About me

I am a researcher in the MIND team @ INRIA Saclay, since autumn 2019, working on machine learning for physiological signals and on method evaluation in AI. My work sits at the intersection of Machine Learning, Signal Processing, and Optimization, with a focus on deep learning methods for inverse problems, unsupervised learning and foundation models for time series, and bilevel optimization. Before joining MIND, I did a postdoc in the Parietal team working with Alexandre Gramfort, and obtained my PhD at ENS Paris Saclay under the supervision of Nicolas Vayatis and Laurent Oudre.

I maintain several large-scale open-source projects for scientific computing: joblib, loky, and cloudpickle for parallel and distributed computing, and benchopt for reproducible benchmarks in machine learning. I have also contributed to a wide range of projects, from general-purpose ones like cpython and scikit-learn, to more research-oriented ones like braindecode/moabb, deepinv, and sbi.

Finally, I also co-organize scientific events at the intersection of AI and science, including the Séminaire Palaisien — a monthly seminar I co-founded, now in its 7th year — and a thematic semester at the AISSAI institute bringing together workshops on machine learning, signal processing, and HPC

Latest publication and projects

Towards a scalable and composable end-to-end workflow for radio-interferometric imaging 2026
Baptiste Besnard, Etienne Bonnassieux, Cyril Tasse, Marwane Dalal, Benoit Malézieux, Tobías I. Liaudat, Dinh-Triem Phan, Thomas Moreau, Javier Conejero, Raül Sirvent, Rosa M. Badia, Damien Gratadour In Radio Telescopes, Technologies, and Methods
The Square Kilometer Array (SKA) is designed to produce massive volumes of data in order to achieve its ambitious observational metrics. Handling such data-intensive processing requires efficient, interoperable tools that cover the full radio interferometry workflow from raw data generation to final data products. Developing a robust and realistic end-to-end workflow has therefore become essential to prepare software systems to leverage SKA data efficiently, to optimize processing time and ...
The Square Kilometer Array (SKA) is designed to produce massive volumes of data in order to achieve its ambitious observational metrics. Handling such data-intensive processing requires efficient, interoperable tools that cover the full radio interferometry workflow from raw data generation to final data products. Developing a robust and realistic end-to-end workflow has therefore become essential to prepare software systems to leverage SKA data efficiently, to optimize processing time and resource usage while ensuring that data reduction pipelines can meet the data product quality requirements. In this context, we present recent work towards the implementation of a fully composable and pipelined workflow realizing the entire data generation and processing chain at scale for a typical observation sequence with SKA-Low. Thanks to the use of PyCOMPSs resource-optimization features, which ensure efficient use of hardware by distributing tasks and parallelizing applications across computing infrastructures, we show how such a complex workflow can be efficiently orchestrated to run on state-of-the-art supercomputers. The end-to-end workflow includes instances of OSKAR, to run simulations and generate realistic visibilities from a telescope model, a sky model and an observation setup. This synthetic data then undergoes a calibration stage using QuartiCal to correct direction-independent effects and imaging is performed with DDF-pipeline, an iterative tool combining killMS for direction-dependent calibration and DDFacet for deconvolution. Through comprehensive benchmarking, we discuss how this processing chain enables efficient preparation for SKA-scale challenges and provides a flexible platform for integrating future algorithmic developments, and in particular how AI algorithms for solving inverse imaging problems can be incorporated into the workflow to propose alternative reconstruction methods.
AI benchmarking infrastructures: lessons from Benchopt slides 06 May 2026,
At Imaging inverse problems and generating models workshop, ICMS, Edinburgh
Research and development in modern AI are primarily driven by empirical work, benchmarking new methods to evaluate relative performance. However, the statistical variability inherent in evaluation processes and long term maintainance objectives aer often poorly accounted for, leading to a validation crisis in which genuine advances are difficult to discern. This talk presents Benchopt, a framework designed to facilitate reproducible, reusable and extendable benchmarking of optimization and ...
Research and development in modern AI are primarily driven by empirical work, benchmarking new methods to evaluate relative performance.
However, the statistical variability inherent in evaluation processes and long term maintainance objectives aer often poorly accounted for, leading to a validation crisis in which genuine advances are difficult to discern.
This talk presents Benchopt, a framework designed to facilitate reproducible, reusable and extendable benchmarking of optimization and AI algorithms, which is a key component in addressing these crisis while also accounting for the need for frugality in modern AI research.
Loky Apr 2023
The aim of this project is to provide a robust, cross-platform and cross-version implementation of the ProcessPoolExecutor class of concurrent.futures.
The aim of this project is to provide a robust, cross-platform and cross-version implementation of the ProcessPoolExecutor class of concurrent.futures. It features:
  • Deadlock free implementation: one of the major concern in standard multiprocessing and concurrent.futures libraries is the ability of the Pool/Executor to handle crashes of worker processes. This library intends to fix those possible deadlocks and send back meaningful errors.

  • Consistent spawn behavior: All processes are started using fork/exec on POSIX systems. This ensures safer interactions with third party libraries.

  • Reusable executor: strategy to avoid respawning a complete executor every time. A singleton pool can be reused (and dynamically resized if necessary) across consecutive calls to limit spawning and shutdown overhead. The worker processes can be shutdown automatically after a configurable idling timeout to free system resources.


python, multiprocessing, parallel computing