Accueil > Recherche > Stages/emplois > [PRIS] Simulation coopérative et parallèle : expérimentations avec le (...)
Proposition de stage TER
vendredi 24 septembre 2010
laboratoire : Verimag
equipe : Équipe SYNCHRONE
encadrants : Matthieu.Moy@imag.fr, Claire.Maiza@imag.fr
SystemC est une bibliothèque pour C++ qui permet de modéliser des systèmes matériels complexes (typiquement, les systèmes sur puces contenus dans des téléphones portables, télévision numériques, ...).
Le parallélisme du système modélisé est exprimé avec des processus SystemC, qui s'exécutent séquentiellement pendant la simulation (on parle de simulation « coopérative »). La simulation coopérative apporte un certain confort d'utilisation, puisque la plupart des accès aux variables partagées n'ont plus besoin d'être protégés par des verrous (mutex), mais c'est aussi une limitation importante de SystemC, puisqu'elle force la simulation à s'exécuter sur un seul processeur, et ne permet pas toujours de modéliser certains comportements du matériel.
Nous cherchons donc à trouver des compromis entre simulation coopérative et simulation parallèle (ou « préemptive »).
L'étudiant devra avoir de bonnes compétences en programmation parallèle.
La connaissance de C++ serait un avantage (puisque SystemC est basé sur C++), mais il est tout à fait possible d'apprendre les notions de C++ nécessaires très rapidement si on connait le langage C et la programmation orientée objet.
L'équipe SYNCHRONE du laboratoire Verimag travaille sur SystemC depuis près de 10 ans, sur des problématiques diverses. En parallèle avec ceci, nous avons développé un simulateur alternatif appelé jTLM, sur lequel nous avons déjà pu expérimenter différentes approches du parallélisme. L'idée est maintenant de s'inspirer de ces travaux, et de les mettre en oeuvre dans SystemC.
Le stage devrait se dérouler suivant ces étapes :
On s'interdira de modifier la bibliothèque SystemC, pour plusieurs raisons : d'une part, le code SystemC proprement dit est gros et complexe, un TER ne laissera pas le temps de s'y plonger. D'autre part, il est souhaitable que les programmes écrits utilisant l'approche proposée puissent tourner sur d'autres simulateurs que l'implémentation de référence de SystemC.
En parallèle avec ceci, un travail de bibliographie bien entendu indispensable, sur les travaux passés du laboratoire dans le domaine, et sur les approches d'autres laboratoires.