previous up next top index
Précédent : CT++ Remonter : Environnement pour architectures hautes performances Suivant : Gestion de ressources dans les


Migration de tâches

Participants : Yvon Jégou

Mots-clés : programmation parallèle La puissance potentielle des architectures massivement parallèles est difficile à exploiter lorsque la granularité du parallélisme offert par les programmes est trop fine. C'est fréquemment le cas pour les codes s'appliquant à des maillages irréguliers ou à des matrices creuses. Le parallélisme présent dans ces codes est généralement massif mais il n'est pas possible de repérer statiquement des itérations ayant des comportements similaires vis à vis de l'espace d'adressage global pour former des tâches parallèles plus importantes.

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.

Les architectures cibles de ce modèle d'exécution sont les architectures fortement parallèles à mémoire distribuée. Lorsqu'aucun accès mémoire distant n'est possible (architectures Norma ), les tâches en cours de migration sont regroupées puis transférées dans des messages. Par contre, sur les architectures de type Numa, les migrations de tâches se traduisent par des écritures distantes.

Les tâches migrantes ont été expérimentées sur la Paragon XP/S de l'Irisa par échange de messages sur plusieurs codes irréguliers. Les résultats montrent qu'il est possible d'atteindre un bon niveau de performance sur un nombre élevé de processeurs même lorsque plus de cinquante pour cent des tâches entraînent une migration [5, 13, 14]. Des expérimentations sur des calculateurs parallèles Cray T3D et T3E sont prévues dans un avenir proche.

Un préprocesseur permettant de traduire automatiquement des programmes Fortran est en cours de développement et devrait être disponible prochainement.



previous up next top index Précédent : CT++ Suivant : Gestion de ressources dans les Remonter : Environnement pour architectures hautes performances