![]()
Précédent : Environnements de développement pour
architectures Remonter : Présentation et objectifs généraux
Suivant : Technologies pour le
Metacomputing
Mots clés : programmation parallèle, tâche migrante, MVP, 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
uvre 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
uvre 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.