As a member of the TADaaM team at INRIA Bordeaux Sud-Ouest and the Satanas Team of the LaBRI, I am working on:

Storage and I/O

With François Tessier and Guillaume Aupy, I work on the problem of modeling and scheduling I/O for HPC application. The goal is to efficiently manage data access between the storage and the compute nodes. I am also advising Nicolas Vidal PhD. on scheduling I/O.

Placement of MPI processes on Multicore NUMA architecture

The problem consists in allocating MPI processes in order to minimize the communication cost based on the topology. With Jerome Clet-Ortega, François Tessier and Guillaume Mercier we look at fast and efficient algorithm that based on the topology and the processes communication pattern allocates the process in the most efficient way. This work is also done in the framework of the Joint Laboratory for Extreme-Scale Computing.

Topology-aware load balancing

Programming multicore or manycore architectures is a hard challenge particularly if one wants to fully take advantage of their computing power. Moreover, a hierarchical topology implies that communication performance is heterogeneous and this characteristic should also be exploited. We developed two load balancers for Charm++ that take into account both aspects depending on the fact that the application is compute-bound or communication-bound. This work is based on our TreeMatch library that compute process placement in order to reduce an application communication cost based on the hardware topology. We show that the proposed load-balancing scheme manages to improve the execution times for the two classes of parallel applications. This work is also done in the framework of the Joint Laboratory for Extreme-Scale Computing.

Optimizing non-blocking collective communications

Non-blocking collective communications require to dedicate some ressources to have them progress in the background in order to overlap computation and communication. Which resources do we need to allocate for communication progression and when is a central question that lies in the trade-off between computation and communication advancement. This is a joint work with Alexandre Denis and the CEA.


The above problems are developed using our tool: TopoMatch (previously TreeMatch). MPI process placement can play a determining role concerning the application performance. In this project we work on a novel algorithm called TreeMatch that maps processes to resources.We have used it for load balancing and process placement (see above) but we have also used it for malleability in the context of resilience (work with U. of A Coruna)

Understanding affinity

Process and thread affinity is an abstraction that tells how two given computing entities should be placed on the resources. High affinity means that they should be map closed together. However, measuring the affinity of computing entities is not a trivial task. Communication matrix is often used but they show limitations. The goal of this work is to design new metrics and models to deeply understand the affinity concept.


I am (was) the advisor of several PhD student/Postdoc or engineers:

  • Richard Sartori (2021- ) : Automatic tuning of MPI launch-time parameters.
  • Clément Gavoille (2021- ) : Performance projection on ARM architecture.
  • Clément Barthélémy (2021 - ) : Design and conception of the Admire Intelligent Controiller.
  • Philippe Swartvagher (2019- 2022), PhD. : System support for large-scale high-performance communication with Alexandre Denis.
  • Adrien Guilbaud (2018 - 2021), Engineer : task-based software stack optimisation.
  • Florian Reynier (2019 - 2022), PhD. : tasked-based communication progression. In collaboration with CEA DAM (Julien Jeagger), and Alexandre Denis.
  • Nicolas Vidal (2018- 2022), PhD : I/O scheduling. Theoretical mulitcriteria algorithms. Storage coordination. Collaboration with University Carlos III de Madrid (Jesus Carretero and David Singh).
  • Benjamin Lorendeau (2015 - 2019 ), PhD: With EDF (Yvan Fournier) we work on optimizing Code Saturn for new generation computers and especially taking into account topology and memory constraints.
  • Hugo Taboada (2015 - 2018), PhD : Cross-layer thread placement in MPC. In collaboration with CEA DAM (Marc Perrache, Julien Jeagger), and Alexandre Denis. The goal is to take into account the role of the threads in an application to schedule and map them according to its role (progress thread vs. computation thread vs. IOpenMP thread)
  • Nicolas Denoyelle (2015 - 2018) PhD. New memory model and performance modeling. With Brice Goglin, Guillaume Papaure(ATOS/Bull). We work on new abstractions and models for memory systems of modern architecture (KNL-like). We also work on performance monitoring of parallel and multithreaded appliction.
  • Farouk Mansouri (2015- 2017). Postdoc: Research project about implementing parallelism of image processing applications on cluster of multi-cores based on the ORWL model. With Jens Gustedt.
  • Thomas Ropars (2014-2015), Postdoc: Affinity management of multithreaded applications.
  • François Tessier (2011- 2014),PhD: Topology aware process placement and load-balancing
  • Paul-Antoine Arras (2011- 2014), PhD: Flexible Runtime for System on Chip. The goal is to define a programming model and to design a runtime system for programming and executing application on the P2012 SoC prototype of STMicroelectonics.

From 2000 to 2009, at the LORIA and INRIA Nancy Grand-Est and I worked on the following problems:
Scheduling in heterogeneous environments
I was involved in research regarding scheduling tasks for heterogeneous platforms (different processor speed, network link, and memory size). With Bertrand Cirou, I have designed an algorithm called triplet that tries to adapt clustering techniques to the heterogeneous case. I supervised the PhD of  Yves Caniou, who worked on scheduling tasks on heterogeneous environments and especially on the grid. We have designed several heuristics that use the history of already scheduled tasks in order to choose the best server. We proposed a multi-criteria approach that aims to optimize several metrics at the same time (makespan, response-time, QoS, etc.). I worked on scheduling under uncertainties. On that matter I worked on scheduling stochastic workloads on heterogeneous environment. Joint work with Vandy Berten from Univ. Libre de Bruxelles. Moreover, I am currently working on scheduling with robustness or reliability constraints. The problem is to schedule tasks where there is some uncertainty in the tasks duration or in the resources availability. In particular I am currently supervising the PhD thesis of Louis-Claude Canon on this subject.
Data persistence and redistribution
During my postdoc I worked on designing and implementing data management in GridRPC systems. I currently focus my research on data persistence (how to tell some data to stay on the computational server) and data redistribution (how to move some data from one server to an other). I have done research on data redistribution over a backbone between distant clusters. The problem consists in scheduling messages in order to optimize the use of the underlying network. This work is done in collaboration with Johanne Cohen, Nicolas Padoy and Frédéric Wagner a former PH.D. student and was also part of the redGRID INRIA ARC project. Recently I worked on decentralized collective communication strategy for MPI. In particular, with Luiz-Angelo Steffenel we proposed a new algorithm for performing an efficient all-to-all on cluster of cluster.
Grid Computing / Metacomputing
I worked on ressource management (scheduling, benchmarking, experiments, etc.) within the FP6 CoreGRID network of excelence. I worked on emulating a grid platform within the GRID-Explorer project.  With Marc Thierry, Louis-Claude Canon and Olivier Dubuisson, I designed a toolset for heterogeneizing (downgrading) an homogeneous cluster called Wrekavoc. Recently we worked on validating this emulator by comparing the execution of applications on a a real cluster and a cluster heterogeneized by Wrekavoc.
Adaptive Online Compression
With Bjorn Knutsson and Mats Bjorkmann, I have designed an algorithm for efficiently transmit data across network. It uses Online and adaptive compression. This means that compression of data is done dynamically and the algorithm automatically adapts the level of compression to the state of the resources. This algorithm as been implemented into the AdOC library which is available here. Within the AGIR ACI data masses project, I worked on designing adaptive online compression for medical images. I recently studied how to perform such an adaptive lossy online compression of medical images using wavelet transform.