I am interested in the development of tools that aim at debugging and optimizing HPC applications.
I began my thesis by focusing on a two-step detection of MPI collective errors in MPI applications. The first step statically identifies the reduced set of collective communications that may eventually lead to potential deadlock situations, and issues warnings. Using this analysis, a selective instrumentation of the code is then achieved, displaying an error, synchronously interrupting all processes, if the schedule leads to a deadlock situation. We observed a low compile-time and runtime overhead. This encourages us to extend our method to multi-threaded contexts. The correctness of hybrid programs like MPI+OpenMP programs requires a special care regarding MPI calls location. The extension I proposed detect misuse of MPI collective operations inside and outside threaded regions. I adapted quite naturally this method to detect misuse of barriers and worksharing constructs in OpenMP applications. These features were regrouped in PARCOACH, a GCC plugin. Approach that we successfully applied to multiple benchmarks and applications. Since then, PARCOACH has been re-implemented as a LLVM pass and is still under development.
From October 2015 to October 2016, I was employed as a postdoctoral researcher at the University of California Berkeley (USA). During this time, I developed dynamic program analyses for communication and synchronization optimizations in large scientific codes.
From December 2016 to September 2017, I worked on the European project HPC4E. My goal was to optimize kernels of some applications developed in the project with the metaprogramming language BOAST.
In October 2017, I joined the STORM team at Inria Bordeaux as a tenured research scientist (CRCN).
PARallel COntrol flow Anomaly CHecker (PARCOACH)
Open Internship Positions
- Journées nationales du GDR GPL, Grenoble 12-15 juin 2018</p> Vérification des applications MPI par une anayse statique/dynamique - Verification of MPI applications using a static/dynamic analysis