Alignement et distribution pour la parallelisation automatique
Institution:
École normale supérieure (Lyon ; 1987-2009)Disciplines:
Directors:
Abstract EN:
Pas de résumé disponible.
Abstract FR:
La programmation de machines massivement paralleles est difficile pour l'utilisateur non specialiste et le developpement de techniques automatisant partiellement l'ecriture de programmes paralleles est devenue une necessite. Les problemes d'ordonnancement et d'allocation sont connus pour etre difficiles mais, dans le cas des boucles imbriquees qui sont au cur de la plupart des programmes de calcul scientifique , il est possible d'elaborer des algorithmes efficaces et d'etudier leur optimalite. A l'heure actuelle, il n'existe aucun compilateur-paralleliseur performant. La plupart des langages pour machines paralleles sont des langages a parallelisme explicites pour lesquels l'utilisateur specifie ainsi bien la repartition des donnees et des calculs que les communications entre processeurs. Les informatiens ont tente d'apporter une reponse a ce probleme d'environnement de programmation des machines paralleles en proposant le langage hpf (high performance fortran) qui semble devenir une norme. On se dirige ainsi vers un langage dans lequel l'utilisateur peut specifier, a l'aide de directives d'aide a la compilation, l'allocation des donnees et le parallelisme de certaines boucles. Le compilateur tente d'optimiser l'execution du programme en tenant compte des directives, l'efficacite du code final depend fortement des indications donnees par l'utilisateur. Ces directives ont ete choisies parce que jugees importantes pour aider le compilateur a generer un code efficace. Cependant, le probleme de trouver les bonnes allocations de donnees et d'extraire le parallelisme present dans le code initial est laisse a l'utilisateur. L'objectif de ma these est de pouvoir generer automatiquement, a la compilation, des directives de repartition des donnees et d'alignement des tableaux conduisant a des communications efficaces