Rappels
Optimisation des boucles
Parall´elisation de Boucles
Transformations de boucles
Algorithme de Allen et Kennedy
Optimisation des boucles, I/II
Compilation avanc´ee et optimisation de programmes
Paul Feautrier
ENS de Lyon
8 novembre 2005
1
Rappels
Optimisation des boucles
Parall´elisation de Boucles
Transformations de boucles
Algorithme de Allen et Kennedy
Pourquoi se focaliser sur les boucles ?
Domaine et vecteur d’it´eration
ependances dans les nids de boucles
Importance des boucles
IDans la majorit´e des programmes (calcul intensif, traitement
du signal), les boucles repr´esentent l’essentiel du temps de
calcul.
ILa r´egularit´e des boucles rend leur optimisation plus facile.
IL’autre source de complexit´e, la r´ecursion, est plus difficile `a
exploiter car moins r´eguli`ere (structure d’arbre contre
structure de grille).
2
Rappels
Optimisation des boucles
Parall´elisation de Boucles
Transformations de boucles
Algorithme de Allen et Kennedy
Pourquoi se focaliser sur les boucles ?
Domaine et vecteur d’it´eration
ependances dans les nids de boucles
Nids de boucles
Un nid de boucles est un ensemble de boucles emboit´ees contenant
des instructions ex´ecutables (affectations).
ILa profondeur d’une instruction est le nombre de boucles qui
l’entourent.
ILe nid de boucles est parfait si toutes les instructions sont `a la
profondeur maximale.
IChaque boucle a un compte-tour qui d´emare `a 0, qui croit par
pas de 1 et qui n’est pas modifi´e dans le corps de boucle. On
suppose que les compte-tours ont des noms distincts.
IOn distingue les boucles do, qui font un nombre de tours
d´etermin´e d’avance, et les boucles while dont le nombre de
tours est impevisible.
3
Rappels
Optimisation des boucles
Parall´elisation de Boucles
Transformations de boucles
Algorithme de Allen et Kennedy
Pourquoi se focaliser sur les boucles ?
Domaine et vecteur d’it´eration
ependances dans les nids de boucles
Vecteur d’it´eration
IVecteur d’it´eration d’une instruction: liste des compte-tours
des boucles englobantes, rang´es de l’ext´erieur vers l’int´erieur,
et trait´e comme un vecteur (pour simplifier les noations).
ILe vecteur d’it´eration est un objet math´ematique ; ses
composantes sont des variables dont on peu changer les noms
et a qui on peut donner des valeurs (num´eriques ou
alg´ebriques).
IUne op´eration est caract´eris´ee par le nom de l’instruction
ex´ecut´ee et par la valeur courante du vecteur d’it´eration:
hS,ii.
4
Rappels
Optimisation des boucles
Parall´elisation de Boucles
Transformations de boucles
Algorithme de Allen et Kennedy
Pourquoi se focaliser sur les boucles ?
Domaine et vecteur d’it´eration
ependances dans les nids de boucles
Espace et Domaine d’it´eration
IEspace d’it´eration: INd, o`u dest le nombre de boucles
englobantes.
IDomaine d’it´eration: l’ensemble des valeurs l´egales du vecteur
d’it´eration.
ILe domaine dit´eration est d´elimit´e par les bornes des boucles
et par des tests.
IIl peut ˆetre connu `a la compilation (boucles do) ou seulement
`a l’ex´ecution (boucles while).
IIl peut ˆetre param´etr´e.
5
1 / 45 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !