Amélioration des performances du compilateur dynamique (PENE) pour l'analyse numérique des applications

Description

Le projet Interflop (https://www.interflop.fr/), financé par l’ANR, vise à fournir des outils et méthodologies pour analyser et corriger les problèmes causés par les erreurs d’arrondi en calcul flottant. Plusieurs outils ont été développés dans le cadre de ce projet, notamment Verificarlo (https://github.com/verificarlo/verificarlo), une extension de LLVM développée par l’UVSQ, Verrou (https://github.com/edf-hpc/verrou), une extension de Valgrind développée par EDF, et PENE (https://github.com/aneoconsulting/pene), une extension de Intel Pin développée par ANEO.

PENE utilise la recompilation dynamique pour instrumenter à l’exécution les codes de calculs : il remplace chaque opération de calcul par un appel à une fonction permettant l’analyse de la stabilité numérique de l’application.

Des travaux précédents ont permis de concevoir des bibliothèques d’analyse ainsi que des tests d’instrumentation communs entre PENE, Verrou et Verificarlo. Nous souhaitons maintenant entrer dans une phase d’optimisation des performances de PENE.

Dans le cadre de ce stage, tu auras sujets principaux. Dans un premier temps (environ un mois), tu permettras à PENE d’utiliser les outils de delta-debug intégrés à Verrou. Ce sujet te permettra de prendre connaissance des outils, de leurs usages et des environnements techniques associés. Dans un second temps, du travailleras à optimiser les performances de PENE afin de réduire le temps d’exécution des codes instrumentés.

Les missions ou attendus à la fin du stage :

  • Créer une couche d’abstraction permettant l’usage du module de delta debug de Verrou avec PENE
  • Analyser les performances de PENE pour identifier les goulets d'étranglements des performances
  • Améliorer les performances de l’instrumentation en utilisant en particulier des registres virtuels ainsi que les possibilités d’instrumentation multiples

Mots-clés: calcul flottant, C++, python, assembleur x86

Pré-requis

Tu es en dernière année de cursus M2 / Ingénieur, Tu disposes d’une forte compétence en Data Science, Tu maîtrises l’analyse de données et les outils d’apprentissage automatique en Python (Scikit-learn, Pytorch ou TensorFlow), Tu disposes en outre d’une capacité à travailler de manière autonome, au sein d’une équipe interdisciplinaire. Des compétences en développement Android natif et en technologies web (React, JavaScript, Ionic) sont appréciés, mais pas requises

Viens à notre rencontre et postule, à cette offre !

Contacts : mtraore@aneo.fr ou recrut@aneo.fr Lieu du stage : Boulogne Billancourt Durée du stage : 6 mois minimum Démarrage : 1er semestre 2025 Niveau d'étude : Master 2 Télétravail : après 3 mois d’ancienneté (voir conditions de notre charte) Gratification stage : 1300 euros par mois