[M1 2012-2013] Optimisations de performances de simulateurs sur machines multi-cœurs

Encadrant : Matthieu Moy Matthieu.Moy@imag.fr

Thème général

Les systèmes embarqués modernes (smartphones, box de fournisseurs d’accès internet, …) sont réalisés avec un mélange de logiciel et de matériel, développés l’un pour l’autre. Étant donné la complexité de ces systèmes, il n’est plus possible aujourd’hui d’attendre la disponibilité du matériel pour développer le logiciel, et il est donc nécessaire d’utiliser des simulateurs. Le laboratoire Verimag travaille depuis une dizaine d’années avec STMicroelectronics sur le simulateur SystemC (basé sur C++, étudié en 3A SLE dans le cours Modélisation TLM en SystemC). Malheureusement, dans la version standard, SystemC ne permet pas d’exploiter le parallélisme des machines multi-coeurs. Nous avons récemment proposé plusieurs approches pour programmer efficacement en SystemC sur machines multi-coeurs. Jusqu’ici, l’accent a été mis sur la théorie, mais les implémentations parallèles n’ont pas encore finement été optimisées. Sur certains exemples, malheureusement, la simulation parallèle est plus lente que la simulation séquentielle !

Compétences attendues

Ce travail demande à la fois des connaissances théoriques et pratiques : il faudra d’une part comprendre les approches de parallélisation, et d’autre part se familiariser avec les outils de profiling. Il sera nécessaire d’apprendre le langage C++, et si ce n’est pas déjà fait, la programmation parallèle en utilisant les threads.

Contexte du travail

Ce travail s’inscrit dans la continuité du TER Ensimag et du stage de M2 réalisés en 2011. Il est prévu qu’un doctorant travaille sur des problématiques connexes dans la même équipe. Sujet

L’objectif est d’identifier les facteurs limitants en performance à l’aide d’outils de profiling de programmes parallèles (comme mutrace), puis d’optimiser aussi finement que possible les performances.

Résultats attendus

À la fin du module, on devrait avoir un exemple non-trivial sur lequel la simulation parallèle donne des résultats nettement meilleurs que la simulation séquentielle.