Des réseaux de processus cyclo-statiques à la génération de code pour le pipeline multi-dimensionnel
Auteur / Autrice : | Mohammed Fellahi |
Direction : | Albert Henri Cohen |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 22/04/2011 |
Etablissement(s) : | Paris 11 |
Ecole(s) doctorale(s) : | Ecole doctorale Informatique de Paris-Sud |
Partenaire(s) de recherche : | Laboratoire : Institut national de recherche en informatique et en automatique (France ; 1979-....) - ALCHEMY |
Equipe de recherche : ALCHEMY | |
Jury : | Président / Présidente : Yannis Manoussakis |
Examinateurs / Examinatrices : Albert Henri Cohen, Yannis Manoussakis, Pierre Boulet, Alain Girault, Daniel Etiemble, Lionel Lacassagne | |
Rapporteurs / Rapporteuses : Pierre Boulet, Alain Girault |
Mots clés
Résumé
Les applications de flux de données sont des cibles importantes de l’optimisation de programme en raison de leur haute exigence de calcul et la diversité de leurs domaines d’application: communication, systèmes embarqués, multimédia, etc. L’un des problèmes les plus importants et difficiles dans la conception des langages de programmation destinés à ce genre d’applications est comment les ordonnancer à grain fin à fin d’exploiter les ressources disponibles de la machine.Dans cette thèse on propose un ''framework'' pour l’ordonnancement à grain fin des applications de flux de données et des boucles imbriquées en général. Premièrement on essaye de paralléliser le nombre maximum de boucles en appliquant le pipeline logiciel. Après on merge le prologue et l’épilogue de chaque boucle (phase) parallélisée pour éviter l’augmentation de la taille du code. Ce processus est un pipeline multidimensionnel, quelques occurrences (ou instructions) sont décalées par des iterations de la boucle interne et d’autres occurrences (instructions) par des iterationsde la boucle externe. Les expériences montrent que l’application de cette technique permet l’amélioration des performances, extraction du parallélisme sans augmenter la taille du code, à la fois dans le cas des applications de flux des donnée et des boucles imbriquées en général.