FrançaisEnglish

2017-2018

Évaluation de performances d'un système d'exploitation pour architectures manycore sur deux architectures : un serveur multicore Intel et l'architecture manycore TSAR

Contexte du projet

ALMOS-MKH [1] est un système d'exploitation Multi-Kernel dédié aux architectures de processeurs multicore ou manycore CC-NUMA (Cache-Coherent-Non-Uniform-Memory-Access). Il a été spécifié initialement pour tirer profit de l'architecture TSAR [2] conçue au LIP6 dont un prototype à 16 cores, fabriqué par le CEA-LETI, est disponible au LIP6, mais il doit aussi permettre de gérer efficacement les serveurs de calcul multicore NUMA Intel ou AMD.

Dans une architecture CC-NUMA, les cœurs sont regroupés en clusters, chaque cluster gérant un segment de l'espace physique. Un cœur accède directement à son segment local et aux autres segments distants au travers d'un réseau intégré. Ces architectures manycore à mémoire partagée cohérente posent un problème pour les systèmes d’exploitation, dont l’architecture doit être profondément modifiée pour exploiter efficacement le parallélisme. Une technique pour garantir le passage à l'échelle est l’approche multikernel.

L'équipe ALSOC développe le système d'exploitation ALMOS depuis 2010. La première version a été développée par Ghassan Almaless [3] qui a posé les principes et proposé les mécanismes de base permettant le coplacement des threads et des objets mémoire, puis Mohamed Karaoui [4] qui a proposé un système de fichiers scalable et proposé l'approche multikernel. Depuis un an, un travail de réécriture en profondeur du noyau a été réalisé par Alain Greiner dans le but de : (1) rendre explicites les API de communication entre instances du noyau, i.e. par passage de message ou par accès direct ; (2) généraliser la réplication de toutes les structures utilisées par les processus dans tous les noyaux pour renforcer la localité; (3) répartir toutes les structures communes, fichiers, pilotes, réseaux sur l'ensemble des noyaux pour réduire au maximum la contention sur les mémoires; (4) redéfinir une HAL permettant de supporter aussi bien les architectures existantes (type Intel ou AMD) que les architectures manycore futures (type TSAR) ; (5) documenter massivement le code. Cette version est nommée ALMOS-MKH (i.e. Multi Kernel Hybrid).

ALMOS-MKH vise à respecter les propriétés suivantes établies par Unrau [5] : (1) Le système d'exploitation ne doit pas séquentialiser le traitement des services ; (2) La durée d'exécution des services ne doit pas dépendre du nombre de cœurs; (3) Le système d'exploitation doit faire en sorte que les données soient placées à proximité des tâches qui les utilisent.

Objectifs du projet

L'objectif du projet consiste à porter ALMOS-MKH sur un serveur de calcul Intel puis à faire des évaluations de performances sur un échantillon de programmes parallèles. Ce travail de portage a déjà été initié, mais n'a pas été finalisé. En outre, il ne s'agit pas seulement de faire un portage, car les évaluations auront pour but de valider les choix sur les structures internes du noyau, mais il sera probablement nécessaire de les faire évoluer en fonction des résultats. Les évaluations pourront aussi être réalisées sur la machine TSAR 16 cores. Le cahier des charges détaillé du projet et son déroulement seront établis dans les premières semaines du projet en concertation l'étudiant.

Encadrement LIP6

Franck Wajsbürt et Alain Greiner. (Contact : Franck Wajsburt)

Le stage est financé par un projet LIP6 en coopération avec Julien Sopéna de l'équipe REGAL, selon les règles de Sorbonne Université.

Bibliographie

[1]ALMOS-MKH kernel specification
[2]Alain Greiner. Tsar: a scalable, shared memory, many-cores architecture with global cache coherence. In 9th International Forum on Embedded MPSoC and Multicore (MPSoC’09), volume 15, 2009.
[3]Ghassan Almaless. Conception d’un système d’exploitation pour une architecture many-cores à mémoire partagée cohérente de type cc-NUMA. PhD thesis, Université Pierre et Marie Curie (UPMC), 2014.
[4]Mohamed Karaoui. Système de fichiers scalable pour architectures many-cores à faible empreinte énergétique. PhD thesis, Université Pierre et Marie Curie (UPMC), 2016.
[5]Ronald C Unrau, Orran Krieger, Benjamin Gamsa, and Michael Stumm. Hierarchical clustering : A structure for scalable multiprocessor operating system design. The Journal of Supercomputing, 9(1-2):105–134, 1995.