Bibliothèque Acts : Analyse et optimisation des performances d'exécution et compilation, y compris entraînement d'algorithmes de machine learning.
Expé. PAON-4 : Optimisation des performances d'un corrélateur de radio-astronomie + mise en place et maintenance d'une intégration continue Gitlab CI.
Expé. PALLAS : Optimisation du post-traitement Python de simulations Smilei.
Expé. Belle 2 : Analyse et optimisation d'utilisation CPU (reconstruction d'événements).
Projet européens AIDA2020 (membre tâches framework + trajectographie) puis AIDAinnova (responsable tâche trajectographie) en collaboration avec le CERN.
Nombreuses activités de formation/diffusion : Ecole IN2P3 parallélisme hétérogène 2016 puis écoles Gray-Scott 2023, 2024 et 2025, qui ont atteint des centaines de participants. Mais aussi formation annuelle sur Git, TP sur le profileur Linux perf, ...
Mise au point d'un serveur de calcul transportable permettant d'animer des formations calcul sans Internet fiable. Administration de ce système dont ordonnanceur Slurm.
Utilisateur/administrateur Linux expérimenté (distributions Alma, Arch, Debian/Ubuntu/Mint et openSUSE); administration occasionnelle Windows et macOS.
Notions d'Ada 2012, assembleur x86, C#, Fortran 95, Go, HTML/CSS, Java, Julia, PHP et PowerShell; frameworks Qt et Intel TBB; normes OpenMP, SYCL et WebGPU.
Maîtrise de nombreuses techniques d'analyse et optimisation de performances :
Analyse statique (lecture ASM assistée par Cutter, MAQAO) et dynamique (profilage et traçage avec perf, py-spy et strace, un peu Intel VTune).
Optimisations d'accès mémoire (cache, NUMA, RAM), SIMD, superscalaire, multi-threading (y compris parallélisme de données et lock-free), calcul et optimisation GPU.
Notions de calcul distribué (MPI, HPX, un peu Apache Spark), temps réel mou, optimisations de consommation mémoire et d'accès/consommation stockage.
Expérience de documentation (principalement mdBook et rustdoc, un peu Doxygen), refactoring et test (unitaire et intégration, incluant test aléatoire basé sur des propriétés).
Utilisation de systèmes de build (CMake, GNU Make, cargo), gestion de version (forges GitHub/GitLab), deboguage graphique (divers IDEs) et console (gdb), packaging (Spack et conteneurs Docker/Podman/Apptainer), intégration continue (dont maintenance exécuteur GitLab).
Notions de machine learning : régression, classification, réduction de dimensionnalité...
Management et communication
Présentations écrites (article, rapport, poster) et orales de mes travaux + ceux d'autrui.
Direction de projets logiciels jusqu'à ~40 kLoCs (hwlocality), contribué à des projets plus gros.
Edition d'image (GIMP), dessin vectoriel (LibreOffice Draw, Inkscape), PAO (Scribus).
Sciences
Application voire développement de techniques d'analyse statistique non paramétriques dans le cadre de l'analyse de données aléatoires de distribution non normale.
Connaissances de méthodes numériques (interpolation, calcul différentiel, résolution d'équations...), statistiques et leurs applications au traitement de données expérimentales. Validation de la stabilité numérique de calculs flottants avec verrou.
Connaissances en traitement du signal : Analyse de Fourier continue et discrète, synthèse additive et soustractive de signaux, filtrage FIR et IIR...
Expérience de logiciels de traitement de données : Matlab, Igor Pro, Excel/LibreOffice Calc, ...
Ma formation
2015 — Ecole européenne HERCULES sur les neutrons et le rayonnement synchrotron