1 Contexte de la recherche 2 Problématique d`ensemble, objectifs et

publicité
DESCRIPTION DU PROJET DE RECHERCHE
1
Beltrame, Giovanni
Contexte de la recherche
Les systèmes multiprocesseurs sur puce (MPSoC) constituent aujourd’hui l’une des solutions les plus utilisées
pour réduire le temps de mise sur le marché des systèmes embarqués à haute performance. En fournissant
davantage de flexibilité au niveau de leur programmation, ils permettent de réutiliser des systèmes matériels
déjà existants dans plusieurs applications [7]. Cependant, les MPSoCs sont plus difficiles à modéliser et à
analyser, à cause de leur architecture parallèle et de leurs éventuelles caractéristiques temps réel, en particulier
dans le domaine aérospatial.
Les entreprises cherchent à développer des solutions génériques, applicables à une gamme de produits étendue.
Ces nouvelles exigences en matière de flexibilité, particulièrement présentes dans les marchés à petits volumes
comme l’aérospatial, induisent de nouvelles contraintes au niveau de la conception du logiciel et du matériel.
Une solution très répandue pour faire face à ce type de problème consiste à utiliser de la logique réconfigurable,
pour augmenter la flexibilité et la durabilité du système sans trop détériorer ses performances [6]. Le fait que
ces systèmes doivent être capables de s’adapter à un environnement hostile et changeant, ainsi qu’à des objectifs fréquemment réajustés, ouvre de nouvelles perspectives dans des domaines relativement nouveaux comme
ceux de l’auto-optimisation et l’auto-réparation, où les dispositifs modifient en permanence leur configuration
pour atteindre les objectifs de performance ou de fiabilité. Les agences spatiales ainsi que les grandes compagnies aéronautiques comme Airbus et EADS investissent aujourd’hui massivement dans ces méthodologies,
qui permettent une réduction substantielle des coûts de développement et du temps de mise sur le marché.
Dans ce contexte, le programme de recherche de ce projet propose des nouvelles techniques pour la conception
de systèmes MPSoC capables d’auto-optimisation. Plus précisément, il s’agit d’un nouvel algorithme d’exploration de l’espace de conception et de nouvelles techniques pour implémenter cet algorithme sur un système
MPSoC.
2
2.1
Problématique d’ensemble, objectifs et contributions
Problématique d’ensemble
Les systèmes self-aware sont capables d’adapter leur comportement et l’utilisation des ressources (plusieurs
milliers de fois par seconde) pour trouver automatiquement la meilleure façon d’atteindre un objectif fixé, tout
en tenant compte des éventuels changements de l’environnement et des exigences des utilisateurs [10]. Une
telle capacité serait profitable à une grande partie des systèmes informatiques modernes et serait particulièrement utile pour satisfaire les contraintes de puissance et de performance dans les systèmes mobiles, le “cloud
computing”, et les systèmes d’exploitation pour architectures parallèles. Pour réaliser de tels objectifs, il faut
a) permettre aux applications de spécifier leurs objectifs, b) permettre aux services du système de déterminer si
ces objectifs sont atteints et c) permettre aux systèmes d’adaptation de prendre des décisions rationnelles entre
les multiples actions possibles.
2.2
Approche théorique
Un algorithme d’exploration de l’espace de conception, basé sur la théorie de la décision [5], peut être utilisé
pour une telle méthodologie d’auto-optimisation temps réel pour les systèmes embarqués. Cette idée s’inspire
1
DESCRIPTION DU PROJET DE RECHERCHE
Beltrame, Giovanni
des recherches menées dans le domaine de l’intelligence artificielle, et utilise des algorithmes déjà implémentés dans des applications temps-réel (e.g. football robotique), qui sont par conséquent de bons candidats à
l’optimisation en ligne. Il s’agit d’un concept novateur, qui n’a été jamais appliqué à l’optimisation temps réel.
2.3
Objectifs
Les objectifs spécifiques :
1. La création d’un algorithme d’optimisation temps réel, c’est à dire, un algorithme suffisamment rapide
pour permettre une optimisation en temps réel.
2. L’implémentation de cet algorithme dans un système multiprocesseur réconfigurable, afin de valider et
d’évaluer cet algorithme.
Afin d’atteindre ces objectifs, une première contribution du programme proposé consistera à modifier l’algorithme décrit dans [5] pour diminuer ses besoins en mémoire et en ressources de calcul. Comparée aux algorithmes déjà utilisés pour l’exploration de l’espace de conception, l’originalité de cet algorithme réside dans
sa capacité à déterminer rapidement la meilleure combinaison de paramètres, et à retenir en permanence le
système le plus proche de l’optimum selon les métriques données par l’utilisateur. Une deuxième contribution
sera de proposer une série de "sondes" et d’"actions" dans un système multiprocesseur : les premières seront
utilisées pour déterminer l’état du système à chaque instant, les deuxièmes serviront à changer le comportement
du système pour maximiser ses performances selon les métriques fournies par l’utilisateur.
2.4
Méthodologie
Le projet se déroulera en deux phases, durant chacune un an. Durant la première phase, l’algorithme d’autooptimisation sera conçu et testé en simulation ; la deuxième phase sera dédiée à la réalisation d’un système
prototype et à la validation de l’approche.
2.4.1
Phase 1 : définition de l’algorithme
Généralement, la configuration optimale d’un système embarqué est difficile à déterminer à cause du grand
nombre de paramètres et leurs relations complexes. Les algorithmes d’optimisation classiques (par exemple
simulated annealing, tabu search, genetic algorithms, etc.) ont besoin d’évaluer des milliers de configurations
pour trouver celle qui maximise les performances. Or, l’évaluation elle-même nécessite d’exécuter l’application
sur le système où d’utiliser d’en estimer les résultats. Par ailleurs, la configuration optimale dépend toujours
des objectifs fixés qui peuvent changer durant l’exécution.
Par conséquent, les algorithmes existants ne sont pas applicables pour l’optimisation en ligne d’un système.
D’où la nécessité de concevoir un algorithme spécifique pour ce problème.
Ce projet se base sur l’algorithme d’exploration (MDP) qui utilise la théorie de la décision [5], et plus précisément les processus de décision de Markov. Il s’agit d’un cadre mathématique permettant de modéliser la prise
de décisions dans des situations où leurs effets sont partiellement aléatoires et partiellement sous le contrôle du
décideur.
L’algorithme MDP parcours l’espace de configurations en changeant les valeurs des paramètres disponibles
et en cherchant la meilleure configuration (la valeur d’une configuration est déterminée par une “fonction
2
DESCRIPTION DU PROJET DE RECHERCHE
Beltrame, Giovanni
objective” qui doit être établi par l’utilisateur). Chaque changement de valeur, appelé une action est dû à une
décision de MDP. Ces actions sont prises en considérant une estimation probabiliste des effets de chacune.
Le système nécessite de vérifier les actions seulement quand l’information probabiliste est insuffisante pour
prendre une décision.
Un tel algorithme n’est pas directement applicable à l’auto-optimisation car il demande d’évaluer très fréquemment le comportement du système. Dans ce projet, l’algorithme MDP sera amélioré pour être appliqué à cette
classe de problèmes : l’évaluation du système sera faite régulièrement (par exemple chaque 0.1 seconde) par
des estimateurs statistiques, et le résultat sera utilisé pour prendre une décision.
Les principaux défis pour l’utilisation des MDPs pour l’auto-optimisation sont les suivants :
1. l’estimation en temps réel des effets des actions
2. la rapidité d’exécution : de larges graphes doivent être explorés pour trouver la configuration optimale
3. la sélection de la fonction objective : le choix des paramètres utilisés dépend du besoin du moment
Les défis 1) et 2) seront adressés en introduisant des techniques statistiques décrites dans “Design of Experiments” [8] (DSE), en particulier la technique appelée “response surface modeling”. Ces techniques permettent
l’estimation des effets des paramètres dans un système configurable. Cette estimation est obtenue à travers une
phase d’apprentissage suivi par la création d’un meta-modèle analytique ; ce dernier demande peu de calcul
et peut donc être utilisé pour une optimisation en ligne. Le processus d’intégration de DSE est représenté à la
figure 1 : le simulateur ReSP [4] sera utilisé pour la phase d’apprentissage et pour le premier test de l’algorithme. Le défi 3) sera adressé à travers l’analyse de plusieurs fonctions objectives, qui seront évaluées avec les
bancs d’essai présents dans ReSP. La recherche déterminera aussi les paramètres à utiliser pour l’optimisation
Changement de paramètres
Bancs d'essai
Sélection des
expériences
Simulation
avec ReSP
MDP
(décision)
Meta-modèles
Métriques
MPSoC
Paramètres
F IGURE 1 – Le processus d’apprentissage et d’intégration de meta-modèles “response surface modeling”
du système (par exemple l’ordonnancement de tâches, la priorité de chaque coeur dans l’accès mémoire, la
fréquence de chaque coeur, etc.)
L’étudiant qui travaillera sur cette phase apprendra des techniques statistiques applicables dans plusieurs domaines scientifiques. Il apprendra également les principes de la simulation à haut niveau de systèmes embarqués. Ces connaissances sont de plus en plus demandées par les entreprises oeuvrant dans ce domaine.
3
DESCRIPTION DU PROJET DE RECHERCHE
2.4.2
Beltrame, Giovanni
Phase 2 : implémentation d’un système prototype sur FPGA
Durant la deuxième année, l’algorithme sera implémenté dans un système prototype sur carte FPGA. Son efficacité sera évaluée en comparant les résultats obtenus avec une optimisation classique. Pour l’implémentation
du système, nous utiliserons la bibliothèque libre GRLib [1] de Aeroflex-Gaisler qui fournit un système basé
sur le processeur LEON3. Nous utiliserons également le système d’exploitation RTEMS [2], très utilisé dans
l’industrie aérospatiale. La librairie GRLib fournit tous les outils nécessaires pour implémenter rapidement et
facilement des systèmes sur carte FPGA.
Le prototype sera modifié en ajoutant des “sondes” qui permettent de déterminer les conditions de fonctionnement du système. L’idée est d’utiliser un système analogue à celui proposé par Santambrogio et. al en [10],
mais amélioré pour ne pas se limiter à la performance des tâches logicielles. Des sondes permettant de connaître
l’utilisation du processeur, la congestion du réseau de communication, etc. seront utilisées dans le but de déterminer un ensemble de dimensions suffisantes. L’algorithme sera intégré dans le logiciel du prototype sous
la forme d’une tâche temps réel qui collecte les valeurs des sondes et utilise les meta-modèles précalculés afin
de choisir la prochaine configuration (voir figure 2). Enfin, le système sera validé en comparant les résultats
LEON3
RTEMS
LEON3
RTEMS
LEON3
RTEMS
LEON3
RTEMS
Tâche periodique
Modèles
MDP
RTEMS
Param.
Sondes
FPGA
F IGURE 2 – Le système prototype
de l’optimisation en ligne avec une optimisation classique. Cette étape sera indispensable pour connaître la
distance des résultats obtenus par rapport à l’optimum.
L’étudiant qui travaillera sur cette partie du projet acquerra une expertise dans l’implémentation des systèmes
sur puce basés sur le processeur LEON3 ainsi que dans l’utilisation du système RTEMS. Ces connaissances
complèteront une formation très demandée par les entreprises du secteur aérospatial.
2.5
Calendrier de réalisation
Le tableau 1 montre les activités du projet réparties sur deux années.
3
Références
[1] GRLib SoC IP Library, http ://www.gaisler.com/.
[2] RTEMS Home Page, http ://www.rtems.com/.
[3] Beltrame, G., L. Fossati et D. Sciuto: High-Level Modeling and Exploration of Reconfigurable MPSoCs.
Dans Proc. of the NASA/ESA Adaptive Hardware and Systems Conference (AHS), pages 330–337, 2008.
4
DESCRIPTION DU PROJET DE RECHERCHE
Première année
Beltrame, Giovanni
TABLE 1 – Activités du projet
Deuxième année
– Intégration de "Design of Experiments"
– Choix de la fonction objective et des paramètres
– Évaluation de l’algorithme avec ReSP
– Implémentation du système prototype
– Introduction de “sondes” en logiciel
– Validation des résultats
[4] Beltrame, G., L. Fossati et D. Sciuto: ReSP : A Nonintrusive Transaction-Level Reflective MPSoC Simulation Platform for Design Space Exploration. Computer-Aided Design of Integrated Circuits and Systems,
IEEE Transactions on, 28(12) :1857–1869, 2009, ISSN 0278-0070.
[5] Beltrame, G., L. Fossati et D. Sciuto: Decision-Theoretic Design Space Exploration of Multiprocessor Platforms. Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on,
29(7) :1083–1095, 2010, ISSN 0278-0070.
[6] Compton, Katherine et Scott Hauck: Reconfigurable computing : a survey of systems and software. ACM
Comput. Surv., 34 :171–210, 2002. http://portal.acm.org/citation.cfm?id=508353.
[7] Jerraya, A. et W. Wolf: Multiprocessor Systems-on-Chips. Morgan Kaufmann, 1re édition, octobre 2004,
ISBN 012385251X.
[8] Montgomery, Douglas C.: Design and Analysis of Experiments, 5th Edition. Wiley, 5e édition, juin 2000,
ISBN 0471316490.
[9] Palermo, G., C. Silvano et V. Zaccaria: An efficient design space exploration methodology for multiprocessor SoC architectures based on response surface methods. Dans Proc. of International Conference on
Architectures, Modeling, and Simulation (SAMOS), pages 150–157, 2008.
[10] Santambrogio, M.D., H. Hoffmann, J. Eastep et A. Agarwal: Enabling technologies for self-aware adaptive systems. Dans Adaptive Hardware and Systems (AHS), 2010 NASA/ESA Conference on, pages 149
–156, juin 2010.
5
Téléchargement