Description
Date depot: 1 janvier 1900
Titre: Optimisation pour exécuter une application sur une architecture MPSOC
Directrice de thèse:
Alix MUNIER (LIP6)
Domaine scientifique: Sciences et technologies de l'information et de la communication
Thématique CNRS : Non defini
Resumé:
L’optimisation des ressources d’une architecture multiprocesseur sur puce pour l’exécution d’une application est un problème complexe qui nécessite le développement de méthodes efficaces si on souhaite exploiter l’ensemble (ou un sous-ensemble) de processeurs. L’architecture ciblée dans cette thèse est le système massivement parallèle sur puce de Kalray, constituée d’un nombre important de processeurs identiques à mémoire distribuée qui communiquent à travers un réseau local d’interconnexion.
L’application à exécuter est exprimée dans un langage dataflow et est modélisée par un graphe cyclo-statique : il s’agit d’un graphe orienté pour lequel tout sommet p représente un ensemble d’instructions et possède un nombre fixé de phases f(p), chacune possédant une durée. Une exécution de p correspond à l’exécution de toutes ses phases dans un ordre fixé. Tout arc du graphe défini du sommet p à q modélise un envoi de données de p vers q : à la fin de chaque phase de p, un nombre fixé de données sont envoyées vers q en utilisant une mémoire tampon m(p,q). Au début de chaque phase de q, un nombre fixé de données sont lues dans la mémoire tampon m(p,q). Des variations sur cette modélisation intégrant des envois de données conditionnels pourront également être prises en compte.
Le problème posé dans cette thèse est de proposer un ensemble d’améliorations à un compilateur conçu par le CEA LIST (équipe de Vincent David) et industrialisé par Kalray. Ce compilateur prend en entrée une application exprimée en un dialecte de C dit ‘Σ-C’ avec des primitives de communication, et est paramétré par la description d’une architecture cible. Le but est de placer et de router l’application de sorte à ce qu’elle puisse s’exécuter en optimisant plusieurs fonctions de coût. Pour cela, le compilateur effectue de manière séquentielle la construction d’un graphe cyclo-statique correspondant à l’application, le dimensionnement des mémoires tampons pour atteindre un débit fixé, puis le calcul d’un placement et d’un routage sur l’architecture cible. Ces phases sont actuellement résolues indépendamment en utilisant des algorithmes pour la plupart issus de la recherche opérationnelle.
La première partie de ce travail de thèse va être d’évaluer la pertinence des algorithmes utilisés et de déterminer les améliorations envisageables dans le compilateur Σ-C industriel de Kalray. L’implémentation d’une boucle de retro-ingénierie (i.e, l’utilisation d’une première solution qui permet d’affiner les solutions suivantes) sera étudiée. Une réflexion sur le choix d’un modèle de communication suffisamment expressif pour implémenter la majeure partie des applications visées et permettant une bonne évaluation des nombres de lectures et écritures dans les mémoires tampons sera également menée.
Cette thèse est prévue sur un financement CIFRE. Elle doit être réalisée, pour la partie académique, au sein de l’équipe ALSOC du LIP6 et encadrée par Alix Munier Kordon. Elle revêt un aspect clairement multidisciplinaire se situant à l’intersection entre recherche opérationnelle et architecture. Le doctorant sera présent à mi-temps dans l’entreprise partenaire, ce qui lui permettra d’être intégré à une équipe de développeurs avec de réelles contraintes industrielles et de se familiariser avec l’ensemble des outils qui y sont utilisés.
Doctorant.e: Bodin Bruno Loic Alexandre