Sujet : Ordonnancement de threads sur machines à organisation hiérarchique

Responsable : Raymond Namyst et Pierre-André Wacrenier
Téléphone : 05 40 00 60 83 / 05 40 00 69 32
e-mail : Raymond.Namyst@labri.fr / Pierre-Andre.Wacrenier@labri.fr
Site Web : http://dept-info.labri.fr/~namyst/runtime/index.html
Equipe : RUNTIME

Présentation du sujet :

Le sujet de thèse proposé s'inscrit dans le cadre des travaux menés au sein de
l'équipe INRIA RUNTIME qui
s'intéresse à la conception de supports exécutifs performants pour
architectures parallèles.

Ces supports exécutifs sont destinés à faciliter l'exploitation efficace
d'architectures de type "grappes de NUMA". L'équipe Runtime
possède une bonne expérience dans le domaine de l'exploitation des
grappes de machines multiprocesseurs symétriques (SMP) et ses travaux
ont notamment conduit à l'élaboration d'un support exécutif --- nommé
µPM2 --- réalisant l'intégration fine d'une bibliothèque de
processus légers et d'une bibliothèque de communication.

La bibliothèque de threads conçue par l'équipe permet l'utilisation de
threads utilisateurs, dont l'ordonnancement est automatiquement
adapté, à la compilation, à la machine cible (machine monoprocesseur,
machine SMP, machine SMP disposant de l'extension
noyau "LinuxActivations", etc.)

Même si les performances brutes de l'ordonanceur de threads sont très
bonnes sur de nombreuses architectures, les applications et
environnements "clients" doivent encore être minutieusement réglées
pour placer judicieusement les processus légers sur les unités de
calcul disponibles. De manière générale, on ne sait pas exprimer les
contraintes d'ordonnancement des threads de manière portable.
Ce problème va encore s'aggraver sur les
architectures multithreads annoncées par les constructeurs.

L'objectif de cette thèse est double.

D'une part il s'agit d'étudier comment exploiter efficacement, au
niveau d'un ordonnanceur de threads, les architectures actuelles qui
présentent un niveau d'organisation de plus en plus hiérarchique:
processeurs virtuels du multithreading simultané (SMT), machines à
accès mémoire non uniforme (NUMA), processeurs multi-cores, etc.

D'autre part il s'agit de proposer de nouveaux outils qui
permettraient aux applications d'expliciter le placement des
threads sur les processeurs sans dépendre des caractéristiques
techniques de l'architecture sous-jacente. Par exemple, il faudra
trouver le moyen adéquant permettant à une application de préciser
certains schémas de synchronisation récurrents, certains patrons
d'accès à la mémoire, etc.

Mot-clés : Multithreading, ordonnancement, multiprocesseurs, NUMA, SMT.

Références :
voir site web