Master 2017 2018
Stages de la spécialité SAR
Scheduler pour les nouvelles architectures multi-coeurs


Site : Trac-Scheduler pour architectures multi-coeurs
Lieu : LIP6, 4 place Jussieu Paris 5eme
Encadrant : Sopena Julien
Dates :Mars 2018 / Aout 2018
Mots-clés : Master SAR, autre qu’ATIAM

Cliquer ici pour vous authentifier


Description

Les architectures multi-coeurs sont aujourd’hui devenues incontournables, tant dans les ordinateurspersonnels que dans les grands centres de calculs. Elles ont permis de maintenir l’accroissement de la puissance de calcul disponible, alorsmême que la puissance d’une seule unité de calcul stagnait depuis quelques années.

Si la solution du toujours plus de coeurs semble alléchante, elle pose denouveaux problèmes en terme d’allocation de ressource. Les performances globales reposent alors entièrement sur les algorithmes de placement utilisés, mettantainsi le scheduler du noyau au centre du système. Or concevoir et implémenter un tel composant n’est pas chose aisée. Il doit en effet prendre en compte denombreux paramètres, tant applicatifs (E/S, localité, interactivité, ...) que matériels (cohérence des caches, topologie mémoire, fréquence et consommationdes coeurs, ...).

Faisant l’hypothèse d’un coût de synchronisation élevé, ainsi que d’uneforte sensibilité des threads aux migrations, les schedulers modernes se sont orientés vers des architectures logiques hiérarchiques, réalisantdes équilibrages inter et intra-groupes, sur un ou plusieurs niveaux. De telles approches présentent l’avantage de limiter le coût dessynchronisations aux seuls membres du groupe et permettent de limiter le déplacement des threads. Cependant, il devient alors très difficile d’assurer certaines propriétés comme celle de la "work conservation" : il ne doit pas y avoir de coeur idle (sans thread) s’il existe desthreads en attente sur d’autres.

S’appuyant sur une série de premiers résultats, montrant que le coût dela migration reste le plus souvent limité, nous proposons dans ce stage d’expérimenter une approche plus centralisée du scheduling. L’idée est d’avoir une seule structure de données pour gérer l’ensemble des threads en attente d’exécution, tout en limitant dans l’implémentation le besoinde synchronisation.

Après avoir implémenté une telle solution dans la dernière version du noyau Linux, le stagiaire pourra mener une campagne de tests sur différentes architectures multi-coeurs présentes (AMD Magny-Cours, Intel Xeon E7 et Intel Xeon E5) dans le laboratoire. Il pourra, en outre, comparer les résultats à ceux obtenus sur les schedulers patrimoniaux, mais aussi sur plusieurs schedulers développés au sein du laboratoire dans le cadre d’une collaboration entre les équipes Whisper et Delys.