Athapascan-1 : interprétation distribuée du flot de données d'un programme parallèle
Auteur / Autrice : | François Galilée |
Direction : | Brigitte Plateau |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance en 1999 |
Etablissement(s) : | Grenoble INPG |
Partenaire(s) de recherche : | Laboratoire : Institut d'informatique et mathématiques appliquées (Grenoble ; 1989-2006) - Informatique et distribution (Grenoble ; 1999-2007) |
Jury : | Président / Présidente : Guy Mazaré |
Mots clés
Mots clés libres
Résumé
Cette thèse est centrée sur la modélisation de l'exécution d'une application parallèle par un graphe de flot de données. Ce graphe, qui relie les tâches aux données partagées, est construit de manière dynamique. Cette construction, indépendante de l'ordonnancement des tâches effectué, permet de définir la sémantique des accès aux données et de controler la consommation mémoire de toute exécution. Nous étudions dans une première partie les algorithmes permettant la construction et la gestion d'un tel graphe de flot de données dans un environnement distribué. Un point crucial de ces algorithmes est la détection de terminaison des accès des tâches sur les données partagées. Nous proposons un algorithme réactif réalisant cette détection. L'implantation de cet algorithme est au centre de l'implantation distribuée de l'interface de programmation parallèle Athapascan-1. Cette interface permet la description du parallélisme d'une application par création de tâches asynchrones. La sémantique (de type lexicographique) de cette interface est également définie à partir du graphe de flot de données. Nous montrons dans une deuxième partie que la connaissance du flot de données d'une application permet de controler de manière théorique la durée et, surtout, la consommation mémoire de toute exécution. Ce controle est effectué à partir d'un ordonnancement séquentiel implicite des tâches. Nous proposons, implantons dans Athapascan-1 et évaluons deux algorithmes d'ordonnancement distribués permettant de limiter le volume de mémoire requis par toute exécution. Ces expérimentations permettent de valider les résultats théoriques obtenus