Habilitation à diriger des recherches

présentée par

Raymond Namyst
Maître de conférences à l'École Normale Supérieure de Lyon

le vendredi 21 décembre 2001 à 10h30
Amphi B, 3 ième étage, ENS Lyon

Document (PDF) disponible ici.
Présentation (flash 5) disponible ici.


Titre :
Contribution à la conception de supports exécutifs performants

Après avis de :
- Sacha Krakowiak , Professeur, Université Joseph Fourier, Grenoble
- Jean Roman, Professeur, Université Bordeaux I
- Robert Russell, Professeur, Université du New Hampshire, Durham, USA
Devant la commission d'examen formée de :
- Bertil Folliot, Professeur, Université Paris VI
- Jean-Marc Geib, Professeur, Université des Sciences et Technologies de Lille
- Sacha Krakowiak,
Professeur, Université Joseph Fourier, Grenoble
- Thierry Priol , Directeur de recherche à l'INRIA, Rennes
- Yves Robert, Professeur, Ecole normale supérieure de Lyon
- Jean Roman,
Professeur, Université Bordeaux I
- Robert Russell , Professeur, Université du New Hampshire, Durham, USA
Résumé :
Ces quatre dernières années, nous nous sommes intéressés à l'étude de nouveaux mécanismes permettant d'améliorer les performances au sein de supports exécutifs parallèles portables. Les architectures visées étant de type ``grappe de noeuds multiprocesseurs (SMP)'', nos recherches se sont naturellement focalisées sur la catégorie des supports exécutifs multithreads distribués qui sont particulièrement adaptés à l'exploitation efficace de ce type de configuration. Cette quête du temps perdu revêt donc une certaine coloration multithread que nous justifierons en rappelant plusieurs vertus méconnues du multithreading. Certains de nos travaux concernent également des aspects non directement liés au multithreading tels que les communications sur réseaux rapides ou encore la gestion de la mémoire virtuellement partagée. À chaque fois, nos efforts se sont principalement portés sur la conception de nouvelles fonctionnalités qui, en s'appuyant sur une étude fine des interactions entre composants logiciels, ont permis d'éviter les traditionnels compromis entre l'efficacité et la portabilité.

Nous avons restreint le cadre de cette étude à un support exécutif réalisant l'intégration de la gestion du multithreading, de la gestion des communications et de la gestion de la mémoire partagée.

En premier lieu, nous avons défini une nouvelle interface de communication (Madeleine) capable d'exploiter efficacement de multiples protocoles pour réseaux rapides (BIP, SISCI, etc.) en contexte multithread. L'originalité de Madeleine est de permettre une sélection dynamique d'optimisations de transmission des données en fonction des contraintes exprimées par l'application. Cette ``programmation par contrat'' est la clé permettant de garantir la portabilité des performances sur un vaste éventail de protocoles. Récemment, nous avons étendu ces travaux aux architectures de type ``grappe de grappes'' qui exhibent un réseau d'interconnexion hétérogène.

Par ailleurs, nos travaux sur l'ordonnancement de threads sur machines multiprocesseurs nous ont conduits non seulement à proposer de nouvelles optimisations rendues possibles en s'écartant (un peu) de la norme POSIX Threads, mais aussi et surtout à proposer des mécanismes permettant d'améliorer le déroulement des opérations d'entrées/sorties (en particulier les communications) sur le plan de la réactivité des threads applicatifs. Nous avons ainsi revisité le modèle des ``Scheduler Activations'' afin d'augmenter la réactivité aux événements d'E/S. Ce modèle a été implanté sous la forme d'une extension au noyau Linux (LinuxActivations) et d'une adaptation de l'ordonnanceur de threads Marcel. Par la suite, nous avons dégagé une interface générale pour la récupération d'événements d'E/S (par scrutation et par interruptions) fondée sur un support spécifique de l'ordonnanceur de threads.

Enfin, nous avons complété ces travaux par une étude de la gestion de la mémoire virtuelle partagée en présence de multithreading au niveau applicatif. Cette étude a débouché sur la proposition d'une MVP générique multiprotocoles (DSM-PM2) permettant aux applications d'implanter différents modèles de cohérence mémoire ou même différents protocoles de cohérence pour un même modèle. En s'appuyant sur les composants décrits précédemment pour la gestion du multithreading et des communications, cette MVP constitue une plate-forme d'expérimentation et de comparaison de protocoles extrêmement flexible. En outre, le lien entre les régions mémoire et les protocoles régissant leur cohérence s'établit de manière dynamique, ce qui permet la mise en place de stratégies adaptatives.

Tous ces travaux ont donné lieu à des réalisations logicielles importantes (intégrées au sein de la suite PM2) qui sont utilisées par plusieurs équipes de recherche françaises et étrangères. Par ailleurs, plusieurs aspects sont également en cours de transfert vers l'industrie.