Projet : ReMaP

previous up next contents
Précédent : Compilateurs et bibliothèques Remonter : Fondements scientifiques Suivant : Réseaux haut-débit et calcul coopératif


Sous-sections


   
Environnements d'exécution multi-threads

Environnements multi-threads

Depuis quelques années, la notion de processus léger (thread) est apparue comme un outil très utile pour le calcul hautes performances. Les threads permettent en effet recouvrir dynamiquement des tâches de calcul et d'entrées sorties au sein d'un même noeud de calcul (processus). L'intégration d'une notion de thread au sein de C++, puis plus récemment de Java constitue un très bon exemple de cette évolution. Le pas suivant consiste à utiliser les threads pour le calcul hautes performances parallèle et/ou distribué. Chacun des noeuds du calcul distribué est alors constitué d'un ensemble de threads partageant la mémoire du noeud. Certains threads sont spécialisés dans des tâches de service : gestion des communication avec les autres noeuds, collection d'information de charge, etc. Les autres threads sont consacrés au calcul proprement dit. À cause du très faible surcoût de la gestion des threads, on peut utiliser plusieurs centaines de threads par noeud sans difficulté. Cette approche a déjà été mise en oeuvre dans de nombreux systèmes de par le monde, notamment Chant (Matthew Haines, ICASE) et Nexus (Ian Foster, ANL). En France, on peut citer essentiellement Athapascan 0 (projet Apache, Grenoble), contemporain de PM2.

L'environnement PM2

L'environnement multi-threads distribué PM2 (Parallel Multithreaded Machine) a été initialement développé au sein du projet Espace du LIFL, sous la direction de Jean-Marc Geib et de J.-F. Méhaut. Sa principale particularité est de proposer un ordonnancement préemptif très efficace des threads, ainsi qu'une fonctionnalité de migration préemptive transparente des threads entre noeuds distants. Un thread peut à tout moment demander au système la migration de threads présents sur son propre noeud vers des noeuds voisins. La migration est complètement transparente pour le thread migré, du moins dans le cas d'architectures compatibles au niveau du binaire. Ceci permet d'installer au-dessus de PM2 un ordonnanceur global qui équilibre la charge dynamiquement en migrant les threads à travers l'ensemble du système.

Nos axes de recherche

À la suite des arrivées de Jean-Francois Méhaut et R. Namyst au sein du projet, l'activité de développement de PM2 s'est progressivement déplacée vers Lyon. Notre objectif est de continuer le développement de PM2 en vue des très hautes performances sur des grappes de processeurs, typiquement des PC interconnectés par un réseau très haut débit de type Myrinet ou SCI.

Au plus bas niveau, cela exige de repenser la structure de PM2 pour l'adapter aux nouveaux protocoles hautes performances qui apparaissent actuellement : protocoles zéro copie (BIP, SBP, etc.) et réseaux et protocoles à capacité d'adressage (SCI, VIA, etc.). D'autre part, il est important d'intégrer dans PM2 la notion de parallélisme hiérarchique offerte par les grappes de multiprocesseurs.
À un niveau plus élevé, il s'agit d'affiner les politiques d'équilibrage de charge globale pour tenir compte non seulement de la charge de calcul, mais aussi des accès aux données distantes, etc.
Il s'agit enfin de conduire une mise en oeuvre applicative de PM2 comme couche d'exécution de plus gros systèmes, en particulier comme exécutif de compilateurs (HPF Adaptor, C*). L'utilisation de PM2 comme support exécutif pour le langage data-flow Athapascan 1 développé par le projet Apache est actuellement à l'étude.
Plus généralement, nous étudions l'utilisation des threads pour la construction d'applications multimédia hautes performances, notamment pour la gestion d'un grand nombre de flux vidéo temps réel parallèles dans le cadre du projet CHARM 7.1.
Les meilleures performances obtenues actuellement sur notre plate-forme PoPC (12 PentiumPro 200 MHz interconnectés par un réseaux BIP/Myrinet sous Linux) sont les suivantes : Ces performances nous placent actuellement parmi les tout meilleurs mondiaux dans ce domaine.



previous up next contents
Précédent : Compilateurs et bibliothèques Remonter : Fondements scientifiques Suivant : Réseaux haut-débit et calcul coopératif