 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
– |
Utiliser des
algorithmes qui ont une approche locale des variables :
|
|
|
=> travail
sur des données contiguës, minimiser la navigation aléatoire dans de
|
|
|
gros volumes de
données (adressage indirect)
|
|
|
– |
Utiliser des
algorithmes “par blocs” (cas d’opérations matricielles) :
|
|
|
=> travailler
sur des blocs de données qui rentrent dans le cache de données
|
|
|
|
=>
Augmentation des performances si :
|
|
|
1. nombre
d’itérations >> nombre de données utilisées,
|
|
|
2. Les boucles
sont permutables,
|
|
|
3. taille du bloc
< taille du cache disponible.
|
|
|
=> le
compilateur essaye de le faire lors de boucles imbriquées (cache
blocking)
|
|
|
=> principe …
|
|