Titulaire d’un diplôme d’ingénieur de l’Enseirb-Matmeca en technologies de l’information et de la communication, Marie-Pierre Oudot a occupé plusieurs postes en entreprise de services du numérique et au sein du Commissariat à l’Energie Atomique dans les domaines de l’informatique de gestion et le génie logiciel. Elle travaille à ce jour au sein d’une équipe de R&D du CEA dont l’objectif est de développer des méthodes et des outils de maillage pour les codes de simulation numérique HPC.
Après de nombreux travaux en ingénierie dirigée par les modèles, notamment l’élaboration de DSLs pour la simulation numérique et leurs environnements logiciels pour générer du code efficace dans un contexte HPC, sa principale mission concerne aujourd’hui Magix3D, outil de maillage en 3D. Marie-Pierre est en charge de la réalisation de la documentation, des tests, du suivi des demandes utilisateurs, et autres activités qui contribuent à garantir le niveau de qualité logicielle.
Marie-Pierre Oudot a (co-)encadré une dizaine d’étudiants et est co-auteur de plusieurs articles publiés dans des revues scientifiques internationales.
Quelques thèmes de recherche
Modélisation, ingénierie des langages, portabilité des performances
Stages co-encadrés
-
U. BATTISTON, Introduction de la décomposition de domaine dans le processus de génération de code Arcane depuis NabLab, CEA, 2021.
-
N. LEMAIRE, Calcul haute performance de la propagation propagation des tsunamis avec NabLab, CEA, 2021.
-
G. LESCROART, Simulation du Tsunami de la vallée de Monai avec NabLab, CEA, 2020.
-
X. GARCIA, Réalisation d’une chaîne de génération de codes XML et C# à partir de modèles UML, CEA, 2010.
-
D. CSERY, Développement d’une application d’intégration et d’analyse d’informations, CEA, 2007.
Post-doctorats co-encadrés
- D. LEROY, Activités de débogage de langage spécifique au domaine dans le contexte de contexte du calcul scientifique et de l’analyse numérique, INRIA Rennes/CEA, 2022.
SLE '23: 16th ACM SIGPLAN International Conference on Software Language Engineering, 2023
abstract
Abstract
Software languages have pros and cons, and are usually chosen accordingly. In this context, it is common to involve different languages in the development of complex systems, each one specifically tailored for a given concern. However, these languages create de facto silos, and offer little support for interoperability with other languages, be it statically or at runtime. In this paper, we report on our experiment on extracting a relevant behavioral interface from an existing language, and using it to enable interoperability at runtime. In particular, we present a systematic approach to define the behavioral interface and we discuss the expertise required to define it. We illustrate our work on the case study of SciHook, a C++ library enabling the runtime instrumentation of scientific software in Python. We present how the proposed approach, combined with SciHook, enables interoperability between Python and a domain-specific language dedicated to numerical analysis, namely NabLab, and discuss overhead at runtime.
Proceedings of the 14th ACM SIGPLAN International Conference on Software Language Engineering, p. 2-15, 2021
abstract
Abstract
Runtime monitoring and logging are fundamental techniques for analyzing and supervising the behavior of computer programs. However, supporting these techniques for a given language induces significant development costs that can hold language engineers back from providing adequate logging and monitoring tooling for new domain-specific modeling languages. Moreover, runtime monitoring and logging are generally considered as two different techniques: they are thus implemented separately which makes users prone to overlooking their potentially beneficial mutual interactions. We propose a language-agnostic, unifying framework for runtime monitoring and logging and demonstrate how it can be used to define loggers, runtime monitors and combinations of the two, aka. moniloggers. We provide an implementation of the framework that can be used with Java-based executable languages, and evaluate it on 2 implementations of the NabLab interpreter, leveraging in turn the instrumentation facilities offered by Truffle, and those offered by AspectJ.