Programmation géométrique à parallélisme de données : modèle, langage et compilation

Le parallelisme de donnees permet l'exploitation efficace des machines massivement paralleles, en particulier lorsque le nombre d'unites de calcul depasse le millier. Le programmeur manipule simultanement un grand nombre de donnees, en leur appliquant un traitement unique sequentiellement decrit. L'algorithmique scientifique accede au parallelisme par ce biais : la majorite des applications numeriques intensives sont d'ores et deja programmees en utilisant le paradigme du parallelisme de donnees. Nous proposons une approche geometrique de ce modele de programmation. Les structures de donnees definies par l'utilisateur sont regroupees et alignees au sein d'une entite abstraite, referentiel de toute manipulation: l'hyper-espace. L'adoption d'une semantique des expressions basee sur ce referentiel permet d'offrir au programmeur deux vues clairement distinctes : la vue microscopique permet l'expression du parallelisme de calcul ; la vue macroscopique permet les communications paralleles a travers l'hyper-espace par une modelisation a base de primitives geometriques. Cette separation est importante pour la phase de generation de code. Nous montrons que l'hyper-espace est une information dont l'exploitation par le compilateur autorise l'introduction de nouvelles techniques d'optimisation du code executable. En particulier, l'allocation memoire des objets est issue de l'attribution des ressources physiques aux points de l'hyper-espace. Le temps d'evaluation d'une expression est optimise par un abaissement sensible du temps d'acces aux donnees. La gestion de la boucle de virtualisation peut aussi profiter de la modelisation geometrique qui autorise la diminution du nombre d'iterations necessaires au traitement d'une expression. Ces resultats sont illustres par des mesures de performances issues de l'atelier de developpement produit durant cette these. Enfin, cette etude est etendue vers un domaine plus large. La problematique de la programmation heterogene est abordee par l'association d'un hyper-espace a une machine du reseau heterogene. L'etude de l'adequation du modele aux structures creuses a permis de proposer une approche originale du traitement de l'irregularite des donnees, qui fournit au programmeur l'abstraction totale de la phase de compression.