|
Titre
:
Contribution à la conception de supports exécutifs
performants
Après avis de : - Sacha Krakowiak , Professeur, Université Joseph Fourier, GrenobleDevant la commission d'examen formée de : - Bertil Folliot, Professeur, Université Paris VIRé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.
|