• Aucun résultat trouvé

Dans ce travail de recherche, nous tentons de répondre à certains des nombreux défis auquel est, aujourd’hui, confrontée l’industrie des semi-conducteurs.

Nous étudions différentes approches, tantôt statique, tantôt dynamique, qui permettent le placement/ordonnancement d’applications et traitent les différents points clés de façon novatrice. Dans un premier temps, nous proposons une méthodologie hybride (mixte statique - dyna-mique) originale et novatrice ciblant les architectures multiprocesseurs massivements parallèles (Many-Core). Celle-ci permet le placement et l’ordonnancement d’applications complexes et de grande taille de façon automatisée. Cette méthodologie prend en compte les variabilités du pro-cessus de fabrication, ce qui permet de réduire les pertes de performances et les "gaspillages" d’énergie potentielles.

Dans un deuxième temps, nous proposons une technique dynamique auto-adaptative, per-mettant de rétablir la (les) tâche(s) lors de défaillances, garantissant ainsi, la terminaison de l’application. Enfin, nous intégrons à cette technique, une stratégie entièrement dynamique, à l’exécution, permettant de répondre aux exigences de performances avec une prise en compte des variabilités tout en minimisant la consommation d’énergie.

Le manuscrit, est organisé en quatre grandes parties (PartieI àIV) dont nous détaillons le contenue chapitre par chapitre dans les paragraphes suivants.

La PartieIest composée de deux chapitres (Chapitre1et2). Le premier, détaille le contexte et les motivations, ainsi que le projet fédérateur (ARAVIS) de ce travail. Le deuxième chapitre, fait un état de l’art sur les principaux points traités en relation avec les Systèmes sur puces, à sa-voir, la variabilité du processus de fabrication et ses impacts, la gestion/réduction de la consom-mation d’énergie et enfin la fiabilité/robustesse.

La PartieII, organisée en cinq chapitres (Chapitre3à7), présente notre proposition de Mé-thodologie de Placement/Ordonnancement Multi-niveaux, tenant compte de la consommation d’énergie et de la variabilité technologique. Cette méthodologie, introduite de façon globale

1.3. Contributions et Organisation du manuscrit CHAPITRE 1. INTRODUCTION

dans le Chapitre3, se décompose en trois étapes :

Etape 1 : Placement/Ordonnancement Locale hors-ligne. Réalisée au moment de la conception, celle-ci se focalise sur le comportement au niveau d’un cluster.

Etape 2 : Placement/Ordonnancement Globale en-ligne. Exploration de l’espace des solutions et conservation du front pareto. Chaque élément de ce dernier est un point de fonctionne-ment "temps/énergie", potentiellefonctionne-ment utilisable dans l’étape suivante.

Etape 3 : Placement/Ordonnancement à l’exécution. Celle-ci se fait dynamiquement lors de l’exécution en décidant quel est le ou les point(s) de fonctionnement du front pareto offrant le meilleur compromis performance/consommation énergétique.

Les trois chapitres suivants (Chapitre4à6) détaillent chacune des étapes précédemment citées. Le Chapitre7présente les expérimentations réalisées.

Dans le Chapitre4, présentant l’étape 1, nous proposons deux1formulations ILP (Integer Li-near Programming) afin de résoudre le problème de placement/ordonnancement localement au niveau d’un cluster. Cette méthode, permet d’obtenir une solution optimale. Cependant, lorsque le nombre de tâche augmente, le temps nécessaire à l’optimisation explose (complexité expo-nentielle) ce qui devient très vite inutilisable en pratique. Afin de pallier à cet inconvénient, nous avons utilisé diverse techniques d’ordonnancement basées sur des algorithmes de liste (List Scheduling). Ces derniers ont une complexité temporelle (O(n)) bien moins élevée et permettent

d’obtenir des solutions relativement proche de l’optimale.

Le Chapitre5décrit la phase exploratoire, constituant l’étape 2. C’est dans cette phase que sont pris en compte les hétérogénéités dûes au processus de fabrication du SoC. Cette étape étant réalisée en ligne, c’est-à-dire sur le SoC cible, il est, de fait, possible d’obtenir les carac-téristiques fréquentielles et énergétiques très proche des valeurs réelles. Afin de réaliser l’explo-ration des solutions, nous avons investigué l’utilisation d’algorithmes génétiques qui sont des algorithmes tout à fait adaptés aux optimisations multiobjectifs. L’exploration se fait au niveau du SoC tout entier et détermine quelles sont les solutions de placement/ordonnancement poten-tiellement intéressantes (au sens pareto) suivant nos deux objectifs qui sont le temps d’exécution

CHAPITRE 1. INTRODUCTION 1.3. Contributions et Organisation du manuscrit

et la consommation d’énergie. L’ensemble de ces points de fonctionnements potentielles sont sauvegardés et pourront être utilisés dans l’étape suivante.

L’étape 3, décrite dans le Chapitre6, réutilise les résultats (points du front pareto) de l’étape 2. Cette étape est réalisée à l’exécution et doit décider quel est le jeux de points de fonctionne-ment à utiliser afin d’atteindre le meilleur compromis possible. La mise en oeuvre de cette étape, se base sur une heuristique utilisée dans certaines méthodes dite scenario based.

Les expérimentations ainsi que les résultats des différentes étapes sont exposées au Cha-pitre7. De nombreux graphes ayant divers caractéristiques (types, tailles, CCR) sont testés sur les différents algorithmes de List Scheduling (Static List Scheduling, Dynamic List Scheduling, pipeline List Scheduling) et ce avec différentes tailles (2 à 16 processeurs) de cluster. De même, l’exploration des solutions est expérimentée avec différents facteurs de variabilité (écart type) sur plusieurs tailles de réseau allant de 9 à 1024 noeuds.

La partieIII est constituée de deux chapitres (Chapitre 8 et 9) dans lesquels nous propo-sons des techniques auto-adaptatives, permettant de prendre en compte, durant l’exécution, les défaillances ainsi que les variabilités de performance et d’énergie.

Le Chapitre8présente, une approche hiérarchique de placement de tâches d’une application et permet de garantir la terminaison de celle-ci lors de défaillances d’un ou plusieurs processeurs. Cette approche est entièrement dynamique et s’effectue durant l’exécution de l’application. Lors d’un fonctionnement normal, c’est-à-dire sans défaillance, le placement des tâches s’effectue dynamiquement durant l’exécution au grès des besoins de l’application. Lorsqu’une défaillance survient, un mécanisme de détection, basé sur le modèle de "fail-silent" informe les tâches en relation avec la tâche défaillante. C’est alors, que se déclenche un autre mécanisme qui va se charger de rechercher un processeur disponible afin de recevoir la tâche défaillante pour y être re-exécutée. Que ce soit pour le "placement standard" ou le "replacement" (lors d’une défaillance), la stratégie de recherche d’un processeur disponible est la même, à savoir "le plus proche voisin d’abord" (Nearby-Search ou Nearest Neighbor). Il est à noter que cette approche ne prend en compte ni les aspects variabilité, ni les aspects consommation. Cependant, nous avons montrés, au travers de simulations, que notre approche permet d’exploiter un parallélisme important avec

1.3. Contributions et Organisation du manuscrit CHAPITRE 1. INTRODUCTION

un sur-coût négligeable.

Le Chapitre9, présente une technique de placement de tâches prenant en compte les diffé-rents aspects motivant cette thèse. A savoir, les aspects performance, consommation, variabilité et défaillance. Cette technique reprend certains principes exposés dans le chapitre8précèdent, principalement la tolérance aux défaillances. La stratégie est une combinaison de Nearest Neigh-boret de First-Fit. En se basant sur les besoins des tâches de l’application (durées des tâches, des communications,...) et sur les capacités de l’architecture (fréquence, charge de travail des proces-seurs, bande passante des liens de communications, énergie statique, énergie dynamique...) notre algorithme adapte sa zone de recherche en modifiant dynamiquement un critère d’arrêt (facteur de relaxation) ce qui permet de garantir le niveau de performance exigé par l’application en évitant les "mauvais" choix (dû aux variabilités tel que consommation excessive, fréquence pro-cesseur trop basse) tout en minimisant la consommation d’énergie. Nos simulations ont montré une réduction d’énergie de 5 à 20% suivant différents scénarios de variabilité.

Enfin, en PartieIVnous concluons ce manuscrit et exposons différentes pistes pour de fu-tures explorations et améliorations.

Chapitre

2

Placement et Ordonnancement