Exploration de l'espace de conception multi-niveaux
pour des applications de type task farm
CONTEXTE
Les systèmes intégrés ont grandement gagnés en complexité ces dernières années, tant du point de vue matériel que logiciel. Ainsi, des systèmes sur puces intégrant plusieurs dizaines ou même des centaines de microprocesseurs (Multi Processor System on Chip, MPSoC), des accélérateurs matériels et un système d’interconnexion complexe sont de plus en plus fréquents. Cette complexité matérielle et logicielle se retrouve notamment dans le cadre des applications de télécommunication haut-débit qui sont de plus en plus gourmandes en ressources. Ces applications sont souvent de type « task farm » c’est-à -dire que les tâches applicatives sont fortement parallèles. Leur graphe de tâches et communications (TCG) peut être décrit comme un ou plusieurs étages de tâches répliquées puis déployées sur MPSoC. Afin d’appréhender cette complexité, l’équipe LabSoC du département COMELEC de Telecom ParisTech et l’équipe ALSOC du LIP6 ont proposé des environnements distincts d’exploration d’architecture, respectivement DIPLODOCUS – et son outil support open-source nommé Ttool - et DSX. L’exploration d’architecture consiste à calculer, pour des fonctions applicatives données, une architecture logicielle/matérielle permettant de réaliser ces fonctions et d’optimiser certains critères, tels que la consommation d’énergie, la surface de la puce, etc. Les environnements DIPLODOCUS et DSX ont été conçu en partenariat avec des acteurs industriels, et notamment, pour DIPLODOCUS, Freescale et Texas Instruments, et pour DSX...
Plus précisement, l'environnement DIPLODOCUS propose de décrire l'application sous la forme de tâches abstraites communicantes : le langage permettant de décrire ces tâches se focalise sur le contrôle : les données sont abstraites, seuls des nombres d'échantillons de données peuvent être échangés entre tâches via des canaux de communication (décrits en LOTOS) de type FIFO finie ou infinie. L'architecture matérielle est décrite indépendamment de l'application sous la forme de noeuds matériels abstraits: noeuds d'exécution (e.g. CPU, accélérateurs matériels), noeuds de communication (i.e. Bus) et noeuds de stockage (par exemple, mémoires). L’ensemble de ces abstractions permettent de réaliser des simulations extrêmement rapides et des vérifications formelles, soit sur l’application directement, soit sur la projection de cette application sur une architecture matérielle.
De son côté, l’environnement DSX vise le déploiement d’applications à de nombreuses tâches parallèles exécutées sur des architectures programmables multiprocesseurs intégrées. La fonctionnalité de ces tâches est décrite en détail en utilisant le langage C et une API spéciale. Les applications sont ensuite déployées sur une architecture à mémoire partagée construite autour de composants SoCLib, bibliothèque de modèles de composants écrits en SystemC gratuitement accessibles. L’ensemble peut enfin être simulé, avec un niveau de détail très important (approche transactionnelle temporisée ou approche cycle précise bit précise), notamment avec des simulateurs d’instruction de CPU. Une des particularités de DSX repose sur le canal multi-écrivains multi-lecteurs (MWMR) qui permet de connecter plusieurs tâches écrivains à plusieurs tâches lecteurs, matérielles tant que logicielles. Ces canaux sont particulièrement utiles lors de la description d’application de type « task farm » que l’on retrouve parmi les applications réseaux et multimédia, où une tâche est répliquée des dizaines ou centaines de fois pour assurer le haut débit.
Un exemple d'une telle application est l'application de classification haut débit, initialement écrite en forme de code C par Laurent BERNAILLE (LIP6, équipe NPA) dans le cadre de sa thèse.
Cette application a été transformée en graphe de tâches DSX au courant d'un projet PACSI en 2009 et fonctionne à ce jour sur la plate-forme SoCLib mono- et multiprocesseur non-clusterisée.
OBJECTIF
Le stage fera partie des travaux communs entre LIP6 et Telecom ParisTech entamés dans le cadre d'un projet LIP6 qui vise à réunir les deux approches d’exploration d’architecture au travers d’une nouvelle méthodologie pour une classe d’applications, s’appuyant sur deux niveaux d’abstraction, de trouver une interconnexion méthodologique des deux outils complémentaires, et d’expérimenter cette réunion sur une application de télécommunication à haut débit. Il mettra sur une base formelle solide le nouveau concept des canaux MWMR, qui ont un grand impact sur SoCLib/DSX. Il vise l'identification des éléments pertinents de l’application au niveau de DIPLODOCUS, leur abstraction et leur modélisation. Il serait éventuellement nécessaire d'étendre DIPLODOCUS pour supporter de nouvelles sémantiques au niveau de l'application ou de l'architecture matérielle.
Un travail préalable qui consistait à modéliser l'application en utilisant une démarche de parallélisation de type task-farm avec DSX a été effectué dans le cadre d'un projet PACSI, en 2009.
TRAVAIL PROPOSE
- Reprendre l'application de classification haut débit transformée en graphe de tâches existante, en apportant des modifications si nécessaires. Écrire cette application et son architecture dans un langage formel afin de mener des preuves de comportement de l’application (interblocages,...).
- Identifier les éléments pertinents de l’application au niveau de DIPLODOCUS, abstraire ces éléments et les modéliser en DIPLODOCUS. Eventuellement étendre DIPLODOCUS pour supporter de nouvelles sémantiques au niveau application ou architecture matérielle. Produire un document explicitant la démarche qui a été adoptée.
- Proposer des éventuelles extensions à DSX à apporter et les documenter le cas échéant. Proposer une sémantique de simulation au niveau de DSX qui permette de réutiliser les preuves formelles obtenues au niveau de DIPLODOCUS.
Il est fort préférable que le/la candidat(e) à ce stage ait participé avec succès au projet MJPEG ou autre projet de déploiement d'appliaction sur plate-forme de simulation et qu'il/elle aurait un intérêt poussé pour la modélisation formelle (p.ex. ayant participé à un module du domaine). Une collaboration étroite avec Télécom ParisTech situé à Sophia-Antipolis nécessitera éventuellement quelques déplacements.
ENCADRANTE AU LIP6:
Daniela Genius, Maison de la Pédagogie, bureau A 004, 4 place Jussieu, 75252 Paris 5,
tel.: 0144277124, e-mail: Daniela.Genius(at)lip6(.)fr
Le stage sera co-encadré avec Ludovic APVRILLE de l'équipe LabSoC de Télécom ParisTech, située à Sophia-Antipolis