Thèse soutenue

Optimisation des communications pour un modele d'execution spmd synchrone

FR  |  
EN
Auteur / Autrice : DAMIEN GAUTIER DE LAHAUT
Direction : Daniel Etiemble
Type : Thèse de doctorat
Discipline(s) : Sciences appliquées
Date : Soutenance en 1996
Etablissement(s) : Paris 11

Résumé

FR

Les machines paralleles sont l'outil privilegie des applications scientifiques sollicitant du calcul numerique intensif. Or les performances reelles obtenues sur ces machines sont souvent tres eloignees de leur performance theorique maximale. Les protocoles de communication contribuent de facon importante a cette perte de performance. Cette these s'integre dans le cadre du projet ptah qui propose un modele d'execution statique des communications visant a supprimer tout protocole. Le routage des communications statiques est directement calcule pendant la compilation du programme et les communications dynamiques sont emulees par une sequence de communications statiques. Cette these valide cette approche dans un premier temps. En effet, une analyse de programmes scientifiques representatifs montre que les communications statiques sont dominantes et que les mecanismes d'emulation restent competitifs par rapport au routage dynamique. Cette these propose dans un deuxieme temps un mecanisme d'optimisation du debit des communications. Ainsi, partant d'un langage a parallelisme de donnees, si l'on compile pour le modele d'execution spmd synchrone, il est possible d'obtenir, pour tous les processeurs, un code generique dont le graphe de dependance de donnees des boucles de virtualisation est acyclique. Ces boucles constituent les sections de code les plus executees. L'effort d'optimisation doit porter en priorite sur elles. Des travaux recents ont presente l'algorithme du pipeline logiciel decompose qui permet d'obtenir un debit optimal pour une boucle dont le corps est un bloc de base et dont le graphe de dependance de donnees est acyclique. Les boucles de virtualisation possedant une structure alternative, nous proposons d'utiliser l'instruction conditionnelle pour obtenir des blocs de base comme corps de boucle. En utilisant l'algorithme du pipeline logiciel decompose pour les boucles de virtualisation, on obtient ainsi un code optimal d'un point de vue debit de calcul et de communication. Cette these prouve ce resultat theorique et l'illustre par un ensemble d'experimentations realisees grace a un compilateur optimisant