Analyses de performances et transformations de code pour les applications MATLAB
Auteur / Autrice : | Patryk Kiepas |
Direction : | Claude Tadonki, Jaroslaw Kozlak, Corinne Ancourt |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique temps réel, robotique et automatique |
Date : | Soutenance le 19/12/2019 |
Etablissement(s) : | Paris Sciences et Lettres (ComUE) |
Ecole(s) doctorale(s) : | Ecole doctorale Ingénierie des Systèmes, Matériaux, Mécanique, Énergétique (Paris) |
Partenaire(s) de recherche : | Laboratoire : Centre de recherche en informatique (Fontainebleau, Seine et Marne) |
établissement de préparation de la thèse : École nationale supérieure des mines (Paris ; 1783-....) | |
Jury : | Président / Présidente : Christine Eisenbeiss |
Examinateurs / Examinatrices : Claude Tadonki, Jaroslaw Kozlak, Corinne Ancourt, Michel Barreteau | |
Rapporteur / Rapporteuse : Joao Manuel Paiva Cardoso, Erven Rohou |
Mots clés
Résumé
MATLAB est un environnement informatique doté d'un langage de programmation simple et d'une vaste bibliothèque de fonctions couramment utilisées en science et ingénierie (CSE) pour le prototypage rapide. Cependant, certaines caractéristiques de son environnement, comme son langage dynamique ou son style de programmation interactif, affectent la rapidité d'exécution des programmes. Les approches actuelles d'amélioration des programmes MATLAB traduisent le code dans des langages statiques plus rapides comme C ou Fortran, ou bien appliquent systématiquement des transformations de code au programme MATLAB sans considérer leur impact sur les performances. Dans cette thèse, nous comblons cette lacune en développant des techniques d'analyse et de transformation de code des programmes MATLAB afin d'augmenter leur performance. Plus précisément, nous analysons et modélisons le comportement d'un environnement MATLAB black-box uniquement en mesurant l'exécution caractéristique des programmes sur CPU. À partir des données obtenues, nous formalisons un modèle statique qui prédit le type et l'ordonnancement des instructions programmées lors de l'exécution par le compilateur Just-In-Time (JIT). Ce modèle nous permet de proposer plusieurs transformations de code qui améliorent les performances des programmes MATLAB en influençant la façon dont le compilateur JIT génère le code machine. Les résultats obtenus démontrent les avantages pratiques de la méthodologie présentée.