Thèse soutenue

Prédiction du temps d'exécution d'applications dans des architectures multi-coeur

FR  |  
EN
Auteur / Autrice : Rémi Meunier
Direction : Thierry MonteilThomas Carle
Type : Thèse de doctorat
Discipline(s) : Informatique et Télécommunications
Date : Soutenance le 30/11/2023
Etablissement(s) : Toulouse, INSA
Ecole(s) doctorale(s) : École doctorale Mathématiques, informatique et télécommunications
Partenaire(s) de recherche : Laboratoire : IRIT : Institut de Recherche en Informatique de Toulouse - Institut de recherche en informatique de Toulouse / IRIT
Jury : Président / Présidente : Christine Rochange
Examinateurs / Examinatrices : Julien Forget
Rapporteurs / Rapporteuses : Emmanuel Grolleau, Angeliki Kritikakou

Mots clés

FR  |  
EN

Mots clés contrôlés

Résumé

FR  |  
EN

Le temps d'exécution d'un programme varie en fonction de ses entrées, qui définissent la séquence des instructions exécutées et de la plateforme d'exécution qui détermine la durée de ces instructions. Dans le contexte des systèmes temps-réel critiques (avionique, spatial...), il est crucial de connaître le temps d'exécution pire-cas des tâches, ou ac{WCET}, afin de garantir qu'elles respectent les contraintes temporelles qui régissent le bon fonctionnement du système comme la date d'échéance. De nombreuses recherches ont déjà étudié la prédiction du temps d’exécution et le ac{WCET} mais elles doivent être mises à jour pour tenir compte des évolutions matérielles. Ainsi, depuis plus d'une décennie, beaucoup de ces recherches ciblent les architectures multi-cœur qui sont plébiscitées par les industriels (meilleures performances, efficacité énergétique, gain de place...). Cependant, la présence de ressources partagées entre plusieurs cœurs fait apparaître des interférences lorsqu’ils tentent d’y accéder de façon concurrente. Certaines tâches peuvent alors attendre plus longtemps que prévu pour être servies par la ressource. L'analyse temporelle doit prendre en compte ces délais bien que la quantité d'interférences et leurs dates soient compliquées à prédire.La première partie de la thèse s’intéresse à l’utilisation d’un modèle de tâche plus précis qui peut être utilisé durant l’ordonnancement et l’analyse d’interférences appelé modèle multi-phase. Il consiste à représenter une tâche non plus sous la forme d’un seul bloc temporel mais divisée en plusieurs phases. Par conséquent, au lieu de considérer que les accès d’une tâche peuvent s’effectuer du début à la fin de cette tâche, on peut compartimenter ces accès dans les phases et ainsi calculer les interférences à l’échelle plus fine des phases. Ce modèle a déjà été utilisé avant la thèse mais nous proposons une formalisation plus générique ainsi qu'une méthode pour calculer de façon conservative le nombre d’accès dans les phases de n’importe quel profil multi-phase d’une tâche. Nous introduisons aussi 3 critères de correction pour garantir que la méthode de calcul des accès est sûre et que l’implémentation du modèle multi-phase dans le code, à l’aide de synchronisations, est correcte d’après un ordonnancement statique donné.La deuxième partie propose des techniques de construction et d’optimisation de profils multi-phase à partir des traces d'exécution d'une tâche. La première technique utilise l'estimation de densité par noyau avec pour objectif de grouper les instructions effectuant des accès dans des phases. À cette technique s'ajoutent des optimisations et corrections pour maximiser l’efficacité du profil durant l’analyse d’interférences, ainsi qu'une méthode pour sélectionner des synchronisations. Par la suite, nous proposons 2 méthodes basées sur des Algorithmes Génétiques (GA) respectivement pour créer et optimiser des profils. En effet, les GA sont adaptés aux problèmes multi-critères avec un large espace de solutions. Nous utilisons deux cas d'études pour comparer et évaluer les méthodes présentées.La dernière partie s'intéresse à l'ordonnancement statique des tâches multi-phase sur les architectures multi-cœur. Le problème est présenté avec une formulation ILP considérant des dépendances entre tâches et les possibles effets des interférences pour minimiser le pire temps de réponse du système. Ensuite, nous proposons des heuristiques avec différentes stratégies pour tirer profit du caractère multi-phase des tâches et inclure les effets des interférences. Enfin, nous menons une étude statistique avec des systèmes synthétiques pour comparer les méthodes dans différentes configurations et mesurer l'efficacité du modèle multi-phase. L'étude se poursuit avec 2 études de cas pour confronter les heuristiques à des formes de profils plus réalistes et de plus gros systèmes.