![]()
Précédent : Environnement pour architectures hautes
performances(cf. Remonter : Résultats nouveaux Suivant :
Technologies
pour le METACOMPUTING (cf.
Participants : Yvon Jégou, David Mentré, Thierry
Priol.
Mots clés : SCI, réseau de stations de travail (NOW), MVP .
Dans la technique d'exécution par migration de tâches, le parallélisme de l'application est mis à profit pour créer un grand nombre de tâches indépendantes, chaque tâche étant chargée d'une partie des calculs à réaliser. Une 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.
L'efficacité de ce modèle dépend fortement des performances de la couche de communication, qui doit :
Cependant, l'utilisation stricte du modèle d'exécution par
migration de tâches ne permet pas de tirer parti des phénomènes
de localité présents dans les accès aux mémoires. Les
développements en cours sur le calculateur Cenju3 de
NEC consistent à mettre en
uvre un
exécutif permettant d'exploiter le modèle de migration de tâches
au-dessus d'une mémoire virtuelle partagée : les tâches
migrent pour accéder aux objets modifiés durant l'exécution alors
que la mémoire virtuelle gère les accès aux objets non
modifiés.
La mémoire virtuelle partagée MOME en cours de développement intègre un protocole de cohérence relâchée avec multiples écrivains. Cette MVP cible tout particulièrement les codes issus d'un processus de compilation de type hpf. Ce type de processus de compilation considère les relations entre la distribution des itérations des boucles parallèles sur les processeurs et la distribution des accès dans les tableaux par analyse des fonctions d'indiçage. Il est généralement possible de prédire quels éléments des tableaux seront lus ou modifiés par chaque processeur avant d'exécuter une boucle parallèle. MOME met en oeuvre un protocole de cohérence relâchée avec multiples écrivains. Plusieurs processeurs peuvent modifier des éléments différents d'une même page de mémoire sans entraîner d'invalidations mutuelles. MOME permet l'utilisation d'une consistance forte, par exemple dans les phases séquentielles, et de fournir une vision cohérente des pages sur les points de synchronisation. Ceci permet, par exemple, de garantir que les données accédées après une barrière de synchronisation intègrent toutes les modifications apportées avant cette barrière. L'utilisation des informations extraites au cours du processus de compilation permet de restreindre l'application de ces contraintes uniquement aux pages potentiellement utiles. De plus, MOME permet de déclencher spéculativement des accès non bloquants en lecture ou en écriture et donc de réduire les temps d'attente lorsqu'un processeur accède à la page pour la première fois. MOME est en cours de mise au point sur le calculateur NEC Cenju3. Ce prototype est construit sur le micro noyau mach.
Depuis plusieurs années, nous avons étudié le concept de mémoire virtuelle partagée ( MVP). Les résultats de ces travaux ont montré des performances qui dépendent fortement des supports matériels (communication) et logiciel (système). Au niveau matériel, un nouveau type de technologie d'interconnexion se développe, offrant un accès distant (lecture et/ou écriture) à la mémoire de n'importe quelle machine connectée au réseau. Cette fonctionnalité permet une mise en oeuvre efficace du concept de mémoire virtuelle partagée. Nous avons réalisé un premier prototype de MVP, NOA [[26]], utilisant ce type de technologie ( SCI).
Au niveau logiciel, nous développons un système générique pour décrire et réaliser des MVP, quel que soit l'environnement matériel et logiciel. Ce système doit permettre de décrire de nouveaux protocoles de cohérence, afin notamment d'offrir un contrôle fin de la gestion mémoire pouvant être utilisé par un compilateur ou par un utilisateur averti. Pour réaliser cette description nous utilisons, en collaboration avec D. Le Métayer du projet Lande, le formalisme Gamma Structuré. Il permet de présenter l'architecture d'une MVP (les éléments qui la composent et leurs relations) et les transformations réalisables en son sein (comment ces éléments interagissent). Cette description devra être dérivable, de façon automatique ou semi-automatique, en une réalisation chargeable dynamiquement dans le système d'exploitation cible. Le premier prototype de ce système devra fonctionner sur un réseau de PC interconnectés par SCI et utilisant le système Linux.