logo EDITE Sujets de doctorat

Gestion coordonnée des ressources CPU et mémoire dans les architectures multi-coeurs

Sujet proposé par
Directeur de thèse:
Encadré par
Doctorant: Redha GOUICEM
Unité de recherche UMR 7606 Laboratoire d'informatique de Paris 6

Domaine: Sciences et technologies de l'information et de la communication

Projet

L'architecture matérielle des processeurs multi-coeurs est aujourd'hui devenue extrêmement complexe. Le nombre de niveaux de cache a augmenté. Ces caches peuvent être globaux, mais aussi limités à un certain nombre de coeurs. Enfin les bus d'inter-connection présentent des latences très hétérogènes. Cette complexité rend très difficile une utilisation efficace des ressources processeur et mémoire de la machine.

Toutefois, mémoire et processeur sont intimement liées. Il faut donc résoudre un double défi à la fois spacial (Où doit on placer une donnée en mémoire ?) et temporel (Quand et quel coeur peut accéder à cette donnée ?). Ainsi, les approches récentes de la littérature s'attachent à synchroniser l'ordonnanceur des processus et les différents allocateurs de mémoire [1]. Nombre de ces solutions reposent aussi sur le principe du Co-Scheduling [2] en cherchant à ordonnancer des groupes de tâches "compatibles".

Les critères permettant de former ces groupes peuvent être multiples et répondent à autant d'objectifs. Ainsi, on trouve dans la littérature des approches qui visent à maximiser l'efficacité des caches en co-schedulant des tâches partageant un grand nombre de données [3]. D'autres tentent de regrouper les tâches de façon à minimiser la contention sur les contrôleurs mémoire [4]. Or ces approches ne sont pas forcément compatibles les unes avec les autres. En effet, en augmentant le débit des accès mémoire, on multiplie les évictions dans les caches, diminuant d'autant leur efficacité. À l'inverse, en optimisant momentanément le nombre de hits dans les caches on finit par sous-utiliser le bus et les contrôleurs mémoire.

Enjeux

On voit qu'une politique parfaite est difficilement envisageable et qu'il faut considérer la mémoire dans sa globalité. L'objectif est de trouver un compromis permettant d'augmenter l'efficacité des différents niveaux de cache, tout en minimisant la contention sur les bus. L'objectif de cette thèse est de proposer de nouveaux algorithmes de gestion de ressources synchronisant allocation mémoire et ordonnancement des processus. Elle pourra s'appuyer sur le langage Bossa (développé au sein de l'équipe Whisper) [5] qui permet programmer des ordonnanceurs, dans le but de proposer un DSL équivalent pour la gestion mémoire.

Remarques additionnelles

[1] Baptiste Lepers, Vivien Quéma, Alexandra Fedorova: Thread and Memory Placement on NUMA Systems: Asymmetry Matters, USENIX Annual Technical Conference, 2015, pp. 277-289

[2] K. Ousterhout, “Scheduling techniques for concurrent systems,” in Proc. of the 3rd International Conference on Distributed Computing Systems, 1982, pp. 22–30.

[3] Sergey Zhuravlev, Sergey Blagodurov, Alexandra Fedorova: Addressing shared resource contention in multicore processors via scheduling. ASPLOS, 2010, pp. 129-142

[4] Christos D. Antonopoulos, Dimitrios S. Nikolopoulos, Theodore S. Papatheodorou: Scheduling Algorithms with Bus Bandwidth Considerations for SMPs, ICPP, 2003, pp. 547-554

[5] G. Muller, J. Lawall, H. Duchesne. A framework for simplifying the development of kernel schedulers: Design and performance evaluation. HASE 2005. pp. 56-65