Projet : CAPS

previous up next contents
Précédent : Environnements de développement pour architectures Remonter : Présentation et objectifs généraux Suivant : Technologies pour le Metacomputing


   
Communication dans les calculateurs parallèles

Mots clés : programmation parallèle, tâche migrante, MVP, SCI .

Résumé :

La maîtrise des communications dans un calculateur parallèle est essentielle pour l'obtention de bonnes performances. Nous étudions deux paradigmes de communication : les tâches migrantes et la mémoire virtuelle partagée. Pour les tâches migrantes, il s'agit de faire migrer les calculs vers les processeurs disposant des données alors que pour la mémoire virtuelle partagée, les données migrent vers les processeurs effectuant des calculs nécessitant celles-ci. Plusieurs implémentations sont en cours d'évaluation à la fois pour des calculateurs massivement parallèles (NEC Cenju-3) et des réseaux de PC à capacité d'adressage (SCI).

Dans la programmation des calculateurs parallèles, l'obtention de bonnes performances est souvent conditionnée par une utilisation judicieuse des mécanismes de communication. Ces mécanismes sont de nature très variées : communication par mémoire partagée ou par échange de message. Ils sont supportés par des architectures de calculateurs disposant respectivement d'un espace d'adressage global ou de plusieurs espaces d'adressage disjoints. Nous nous intéressons à cette dernière catégorie de calculateurs. Il s'agit de calculateurs disposant de mémoires distribuées, chaque processeur disposant de sa propre mémoire locale. La communication est fondée sur l'échange de messages. L'objectif de nos recherches est d'étudier différents paradigmes de communication adaptés aux applications du calcul scientifique et notamment les applications dites irrégulières où les accès aux données sont inconnus lors de l'étape de compilation. Nous étudions essentiellement deux concepts: les tâches migrantes et la mémoire virtuelle partagée.

Le concept de tâches migrantes vise l'exploitation efficace d'un parallélisme à grain fin qui apparaît fréquemment dans les codes de calcul scientifique s'appliquant à des maillages irréguliers ou à des matrices creuses. Dans le modèle d'exécution par migration de tâches, chaque tâche ne peut accéder librement qu'à la mémoire locale du processeur qui l'exécute. Afin d'accéder à une donnée gérée par un autre processeur, l'exécution de la tâche est transférée sur le processeur en charge de cette donnée. Ce modèle d'exécution est tout particulièrement adapté à l'exécution d'applications où la granularité des tâches parallèles est très faible et où le placement des données est inconnu à la compilation. Notre objectif est de proposer une mise en \oeuvre performante de ce modèle intégrant compilation et génération de code et basée sur un exécutif spécialisé pour les communications.

Le concept de mémoire virtuelle partagée a pour objectif de fournir un espace d'adressage global pour des calculateurs parallèles disposant d'espaces d'adressage disjoints. Les architectures de calculateurs parallèles que nous visons sont les machines massivement parallèles à mémoire distribuée (NEC Cenju-3) et les réseaux de stations de travail ou de PC. Nous nous intéressons en priorité à ce dernier type de calculateurs. En effet, l'évolution rapide des performances des PC permet d'envisager de les utiliser en réseaux pour exécuter des programmes parallèles. Cependant, pour obtenir de bonnes performances, il est nécessaire d'utiliser une nouvelle technologie d'interconnexion: les réseaux à capacité d'adressage. Il s'agit de réseaux autorisant l'accès distant à la mémoire. Cet accès est réalisé entièrement par le matériel, il permet ainsi un accès très rapide (de l'ordre de quelques micro-secondes). Deux technologies sont d'ores et déjà disponibles: Memory Channel de DEC et SCI de Dolphin ICS. Nous avons pour objectif la conception d'un mécanisme de mémoire virtuelle partagée exploitant la technologie SCI de Dolphin ICS. Nous nous intéressons notamment à la mise en \oeuvre efficace de modèle mémoire à cohérence relâchée qui permet de réduire notablement le nombre de communications. L'objectif à terme de nos recherches est de permettre une migration aisée de codes parallèles développés pour des calculateurs parallèles à mémoire partagée sur des réseaux de stations de travail.

Les deux concepts que nous étudions sont complémentaires en soi. Ils peuvent être vus de façon duale. Dans le cas des tâches migrantes, il s'agit de faire migrer les tâches vers les processeurs disposant des données alors que la mémoire virtuelle partagée permet une migration des données vers les processeurs exécutant des tâches. Une comparaison de ces deux techniques est en cours dans le cadre d'une collaboration avec la société NEC.



previous up next contents
Précédent : Environnements de développement pour architectures Remonter : Présentation et objectifs généraux Suivant : Technologies pour le Metacomputing