Thèse soutenue

Variabilité logicielle profonde pour l'entraînement de modèles de performance robustes

FR  |  
EN
Auteur / Autrice : Luc Lesoil
Direction : Mathieu AcherArnaud BlouinJean-Marc Jézéquel
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 17/04/2023
Etablissement(s) : Université de Rennes (2023-....)
Ecole(s) doctorale(s) : École doctorale Mathématiques, télécommunications, informatique, signal, systèmes, électronique (Rennes ; 2022-....)
Partenaire(s) de recherche : Laboratoire : Institut de recherche en informatique et systèmes aléatoires (Rennes) - DiverSe
Jury : Président / Présidente : Élisa Fromont
Examinateurs / Examinatrices : Pooyan Jamshidi‎
Rapporteurs / Rapporteuses : Lidia Fuentes, Rick Rabiser

Résumé

FR  |  
EN

Les systèmes logiciels sont fortement configurables, au sens où les utilisateurs peuvent adapter leur compilation et leur exécution grâce à des configurations. Mais toutes ces configurations ne se valent pas, et certaines d'entre elles seront nettement plus efficaces que d'autres en terme de performance. Pour l'être humain, il est complexe d'appréhender et de comparer les les différentes possibilités de configuration, et donc de choisir laquelle sera adaptée pour atteindre un objectif de performance. De récents travaux de recherche ont montré que l'apprentissage automatique pouvait pallier à ce manque et prédire la valeur des performances d'un système logiciel à partir de ses configurations. Problème. Mais ces techniques n'incluent pas directement l'environnement d'exécution dans les données d'apprentissage, alors que les différents éléments de la pile logicielle (matériel, système d'exploitation, etc.) peuvent interagir avec les différentes options de configuration et modifier les distributions de performance du logiciel. En bref, nos modèles prédictifs de performance sont trop simplistes et ne seront pas utiles ou applicables pour les utilisateurs finaux des logiciels configurables. Contributions. Dans cette thèse, nous proposons d'abord de définir le terme de variabilité profonde pour désigner les interactions existant entre l'environnement et les configurations d'un logiciel, modifiant ses valeurs de performance. Nous démontrons empiriquement l'existence de cette variabilité profonde et apportons quelques solutions pour adresser les problèmes soulevés par la variabilité profonde. Enfin, nous prouvons que les modèles d'apprentissage automatique peuvent être adaptés pour être par conception robustes à la variabilité profonde.