44
Optimisation dynamique logicielle des Optimisation dynamique logicielle des accès accès aux données par prédiction de Markov sur aux données par prédiction de Markov sur les pas en mémoire et préchargement. les pas en mémoire et préchargement. Implantation dans le compilateur Open64. Implantation dans le compilateur Open64. Jean Christophe Beyler Jean Christophe Beyler ICPS/LSIIT Université de Louis Pasteur de ICPS/LSIIT Université de Louis Pasteur de Strasbourg Strasbourg 16/12/2004 16/12/2004

Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Embed Size (px)

Citation preview

Page 1: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Optimisation dynamique logicielle des Optimisation dynamique logicielle des accèsaccès

aux données par prédiction de Markov sur aux données par prédiction de Markov sur les pas en mémoire et préchargement. les pas en mémoire et préchargement.

Implantation dans le compilateur Open64.Implantation dans le compilateur Open64.

Jean Christophe BeylerJean Christophe BeylerICPS/LSIIT Université de Louis Pasteur ICPS/LSIIT Université de Louis Pasteur

de Strasbourgde Strasbourg16/12/200416/12/2004

Page 2: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

PlanPlan

PrésentationPrésentation Système dynamiqueSystème dynamique Modèle MarkovienModèle Markovien

Exemple d’implémentationExemple d’implémentation Création du modèleCréation du modèle Résultats expérimentauxRésultats expérimentaux Open64Open64 ConclusionConclusion

Page 3: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

PrésentationPrésentation

Optimisation Optimisation statique:statique: Lors de la compilationLors de la compilation

Limitations des Limitations des optimisations statiquesoptimisations statiques

Paramètres inconnus lors Paramètres inconnus lors de la compilationde la compilation

Les défauts de cacheLes défauts de cache Techniques de Techniques de

préchargement simplespréchargement simples

Page 4: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

PrésentationPrésentation Utilisation d’un Utilisation d’un

système dynamique:système dynamique: Exécution Exécution

d’optimisation d’optimisation pendant l’exécutionpendant l’exécution Solution matérielle :Solution matérielle :

Permet de repérer les Permet de repérer les défauts de cachedéfauts de cache

Plus rapide mais il y a Plus rapide mais il y a un coût en matérielun coût en matériel

Solution logicielle :Solution logicielle : PortablePortable ModelableModelable Plus lentPlus lent

Page 5: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Historique de systèmes Historique de systèmes logicielslogiciels

DynamoDynamo (Hewlett Packard) en 2000 (Duesterwald (Hewlett Packard) en 2000 (Duesterwald etet al.al.):): Optimise des portions du codeOptimise des portions du code TransparentTransparent

DeliDeli (Hewlett Packard) en 2002 (Duesterwald (Hewlett Packard) en 2002 (Duesterwald etet al.al.):): Optimise des portions du codeOptimise des portions du code 2 versions: Transparente et API2 versions: Transparente et API

Un autre optimiseur en 2002 (Chilimbi et Hirzel) : Un autre optimiseur en 2002 (Chilimbi et Hirzel) : Optimisation des accès mémoireOptimisation des accès mémoire Autonome et puissant mais que sous Autonome et puissant mais que sous WindowsWindows

Adore Adore en 2003en 2003 (Lu (Lu etet alal.):.): Optimisation des accès mémoire : insertions de Optimisation des accès mémoire : insertions de lfetch lfetch

(Itanium)(Itanium) Limité au cas des bouclesLimité au cas des boucles

Page 6: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Modèle MarkovienModèle Markovien

Analyse statistique d’une suite Analyse statistique d’une suite SS d’éléments d’éléments (des accès mémoire dans notre cas) (des accès mémoire dans notre cas)

Mise sous forme de couples Mise sous forme de couples (X,Y)(X,Y) où: où: XX et et YY sont des éléments de la suite sont des éléments de la suite XX précède précède YY

Mais aussi Mais aussi (S’,Y)(S’,Y) où: où: S’S’ est une sous suite de est une sous suite de SS Tous les éléments de Tous les éléments de S’S’ précèdent précèdent YY

Page 7: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Système dynamique Système dynamique logiciellogiciel

Propriétés générales :Propriétés générales : S’exécute en même temps que le programme cibleS’exécute en même temps que le programme cible PortablePortable Relativement légerRelativement léger Facile à utiliserFacile à utiliser

Propriétés spécifiques à ESODYP (Propriétés spécifiques à ESODYP (An Entirely An Entirely Software and Dynamic Data PrefetcherSoftware and Dynamic Data Prefetcher) :) : Modélise les comportements mémoiresModélise les comportements mémoires

En étudiant les sauts mémoires effectuésEn étudiant les sauts mémoires effectués Précharge les données dans le cachePrécharge les données dans le cache

Page 8: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Déroulement de notre Déroulement de notre modèlemodèle

1)1) Le programme cible envoie les Le programme cible envoie les accès mémoire au modèleaccès mémoire au modèle

2)2) Deux possibilités :Deux possibilités :1)1) Il modélise le comportement des accès Il modélise le comportement des accès

mémoires reçus mémoires reçus (phase de (phase de construction)construction)

2)2) Il exploite les données afin de prédire Il exploite les données afin de prédire et précharger les futurs accès et précharger les futurs accès (phase (phase de prédiction)de prédiction)

Page 9: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Structures de donnéesStructures de données

Le programme peut posséder plusieurs accès Le programme peut posséder plusieurs accès coûteuxcoûteux

Chaque séquence est probablement unique:Chaque séquence est probablement unique: Paramètres différents utilisés par le modèleParamètres différents utilisés par le modèle Réactions différentes du modèle par Réactions différentes du modèle par

rapport aux séquencesrapport aux séquences

Chaque séquence aura une structure de Chaque séquence aura une structure de données associéedonnées associée

Page 10: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Exemple concretExemple concret

TreeaddTreeadd du banc d’essai du banc d’essai OldenOlden

Création et parcours d’un arbre binaire Création et parcours d’un arbre binaire par la gauchepar la gauche

Modification du codeModification du code Plus de 90% du temps se déroule dans la Plus de 90% du temps se déroule dans la

fonction fonction TreeaddTreeadd Dans cet exemple, un accès nous Dans cet exemple, un accès nous

intéresse donc une seule structure est intéresse donc une seule structure est nécessairenécessaire

Page 11: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

InitialisationInitialisation

Durée de constructionDurée de construction ProfondeurProfondeur DistanceDistance Erreurs maximumErreurs maximum

Page 12: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Code de la fonction Code de la fonction TreeaddTreeadd

int TreeAdd (t)int TreeAdd (t)register tree_t *t;register tree_t *t;{ { ... ...

tleft = t->left; tleft = t->left; t : donnée t : donnée intéressante àintéressante à

leftval = TreeAdd(tleft); leftval = TreeAdd(tleft); préchargerpréchargertright = t->right;tright = t->right;rightval = TreeAdd(tright);rightval = TreeAdd(tright);value = t->val;value = t->val;return leftval + rightval + value;return leftval + rightval + value;}}

Page 13: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Code de la fonction Code de la fonction TreeaddTreeadd

int TreeAdd (t)int TreeAdd (t)register tree_t *t;register tree_t *t; m1: structure de donnéesm1: structure de données{ { associéeassociée... ... #ifdef __MARKOV__#ifdef __MARKOV__ fct : pointeur de fonction,fct : pointeur de fonction,

m1->fct(m1,t);m1->fct(m1,t); permet de passer permet de passer l’informationl’information

#endif#endiftleft = t->left;tleft = t->left; t : donnée intéressante àt : donnée intéressante àleftval = TreeAdd(tleft);leftval = TreeAdd(tleft); préchargerpréchargertright = t->right;tright = t->right;rightval = TreeAdd(tright);rightval = TreeAdd(tright);value = t->val;value = t->val;return leftval + rightval + value;return leftval + rightval + value;}}

Page 14: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

La fonction La fonction fctfctint TreeAdd (t)int TreeAdd (t)

register tree_t *t;register tree_t *t;{ { ... ... #ifdef __MARKOV__#ifdef __MARKOV__

m1->fct(m1,t);m1->fct(m1,t);#endif#endiftleft = t->left;tleft = t->left;leftval = TreeAdd(tleft);leftval = TreeAdd(tleft);

tright = t->right;tright = t->right;rightval = TreeAdd(tright);rightval = TreeAdd(tright);value = t->val;value = t->val;return leftval + rightval + return leftval + rightval +

value;value;}}

Pointeur de fonction Pointeur de fonction permet de permet de :: passer de la phase de passer de la phase de

construction à la phase de construction à la phase de prédictionprédiction

ParamètresParamètres1.1. Structure Structure m1m1 permettant permettant

de modifier de modifier fct fct et les et les autres donnéesautres données

2.2. La donnée qui est un La donnée qui est un élément de la séquence à élément de la séquence à étudierétudier

Chaque séquence possède Chaque séquence possède sa propre structuresa propre structure Paramètres différentsParamètres différents Phase différentePhase différente

Page 15: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

RemarquesRemarques La plupart des optimiseurs :La plupart des optimiseurs :

S’intéressent aux adresses accédées :S’intéressent aux adresses accédées : Un programme accédant trop d’adresses distinctes Un programme accédant trop d’adresses distinctes

n’est pas parfaitement modélisablen’est pas parfaitement modélisable

Notre modèle :Notre modèle : S’intéresse aux sauts effectués :S’intéresse aux sauts effectués :

Permet de simplifier le modèle dans le cas de Permet de simplifier le modèle dans le cas de programmes ayant un comportement mémoire « programmes ayant un comportement mémoire « suffisamment constant »suffisamment constant »

Préchargement de plusieurs sauts en avance :Préchargement de plusieurs sauts en avance : Permettre au chargement de se finirPermettre au chargement de se finir Danger d’écrasement de donnéesDanger d’écrasement de données

Page 16: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Type de modèleType de modèle

Suite Suite récupérée récupérée : 1: 1 2 16 2 32 2 16 2 2 16 2 32 2 16 2 3232

Modèle statistique mais sous forme:Modèle statistique mais sous forme: De tableau?De tableau? De graphe?De graphe?

Page 17: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Un tableauUn tableau

11 2 16 2 32 2 16 2 322 16 2 32 2 16 2 32

11 22

22 16,3216,32

1616 22

3232 22

• Profondeur : 1

• Incertitude sur une des prédictions

Page 18: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Un tableauUn tableau

11 2 16 2 32 2 16 2 322 16 2 32 2 16 2 32

1,21,2 1616

2,162,16 22

16,216,2 3232

2,322,32 22

32,232,2 1616

• Profondeur : 2

• Prédiction plus fine

•Inconvénients avec des tableaux :

• Problèmes d’allocation

• Temps de recherche d’une suite

Page 19: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Création du grapheCréation du graphe

11 2 16 2 32 2 16 2 322 16 2 32 2 16 2 32

1

Page 20: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

1

2

2

11

2

21

Création du grapheCréation du graphe

11 2 16 2 32 2 16 2 322 16 2 32 2 16 2 32

Page 21: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

2

2 16

116

1

Création du grapheCréation du graphe

11 2 16 2 32 2 16 2 322 16 2 32 2 16 2 32

1

11

2

2

16

16

1

1

Page 22: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

2

2

21

11

1

16

16

1

212

2

1

16

161

Création du grapheCréation du graphe

11 2 16 2 32 2 16 2 322 16 2 32 2 16 2 32

1

1

Page 23: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

1

212

2

1

16

161

Création du grapheCréation du graphe

11 2 16 2 32 2 16 2 322 16 2 32 2 16 2 32

1 16

16

1

1

1

32

32

1

1

22

2

1

1

32

32

1

1

Page 24: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

2

2

2

1

1

22

2

1

1

32

32

1

1

Création du grapheCréation du graphe

11 2 16 2 32 2 16 2 322 16 2 32 2 16 2 32

1 16

16 2

1

1

1

1 2

1

1

2 32

32

1

11

Page 25: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

2

1

1

2 32

32

1

1

1

Création du grapheCréation du graphe

11 2 16 2 32 2 16 2 322 16 2 32 2 16 2 32

1 16

16 2

1

1

1

1

1

2

1

1

2 32

32

1

1

1

16

16

2

2

Page 26: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

2

2

1

1

32

32

1

1

1

16

16

2

1

21

1

Création du grapheCréation du graphe

11 2 16 2 32 2 16 2 322 16 2 32 2 16 2 32

1

1

11

1

2

1

2

216

2

16

2

2

Page 27: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

2

2 2

1

1

2 32

32

1

1

1

16

16

2

2

Création du grapheCréation du graphe

11 2 16 2 32 2 16 2 322 16 2 32 2 16 2 32

1

1

12

32 2

2

2

2

2

2 32

Page 28: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Début des prédictionsDébut des prédictions Temps de construction assez lourdTemps de construction assez lourd

Arrêt de la constructionArrêt de la construction Utilisation du modèle tant qu’il est efficaceUtilisation du modèle tant qu’il est efficace

Représente bien le comportementReprésente bien le comportement

Un programme possède plusieurs phases :Un programme possède plusieurs phases : Graphe spécifique à la phaseGraphe spécifique à la phase Reconstruction lorsque le nombre d’erreurs Reconstruction lorsque le nombre d’erreurs

consécutives est trop importanteconsécutives est trop importante

Equilibre entre trop de constructions et Equilibre entre trop de constructions et trop d’erreurstrop d’erreurs

Page 29: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

2

232

1

2

1

2

2

232

2

2

1

1

3232

2

2

2

Phase de prédictionPhase de prédiction

2 16 1 48 2 162 16 1 48 2 16

2

16

16

2

1

1

12

2

Erreurs consécutives:

0

Page 30: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

216

22

2232

2

2

1

216

1

2

2

2

32

Phase de prédictionPhase de prédiction

2 16 1 48 2 162 16 1 48 2 16

2

16

2

1

1

12

2

32

Erreurs consécutives:

0

2

32

Page 31: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

16 2

2

232

2

2

2

2

2

32

Phase de prédictionPhase de prédiction

2 16 1 48 2 162 16 1 48 2 16

2

16

2

1

1

12

2

32

Erreurs consécutives:

0

2

1

16

1

1

Page 32: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

1

1

16 2

2

232

2

2

2

2

2

32

Phase de prédictionPhase de prédiction

2 16 1 48 2 162 16 1 48 2 16

2

16

21

12

2

32

Erreurs consécutives:

2

1

2

1

1

2

Page 33: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

1

1 16 2

2

232

2

2

2

2

2

32

Phase de prédictionPhase de prédiction

2 16 1 48 2 162 16 1 48 2 16

2

16

21

12

2

32

Erreurs consécutives:

2

2

2

3

Page 34: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

2

1

1 16 2

2

232

2

2

2 2

32

Phase de prédictionPhase de prédiction

2 16 1 48 2 162 16 1 48 2 16

2

16

1

12

2

32

Erreurs consécutives:

2

3

2

0

2

2

216

Page 35: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Résultats sur Résultats sur Itanium-2Itanium-2

• treeadd : distance est importante

• ks : profondeur 2 est meilleure

• equake : distance trop grande peut faire baisser l’accélération

• mcf : meilleure optimisation

Page 36: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Résultats sur Résultats sur AMD Athlon AMD Athlon XP 2600+XP 2600+

•Raisons pour les différences:

• prefetch: instruction différente

• Différentes taille de lignes de cache:

• Itanium-2 : L2-D 128 octets

• Athlon XP 2600+: L2-D 64 octets

• Vitesse de programme

Page 37: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Remarques sur le Remarques sur le modélemodéle

Le modèle est:Le modèle est: PortablePortable RéalisteRéaliste Pas encore autonome et transparentPas encore autonome et transparent

Quatre critères à choisir:Quatre critères à choisir: Durée de constructionDurée de construction ProfondeurProfondeur Distance de préchargementsDistance de préchargements Erreurs maximum avant reconstructionErreurs maximum avant reconstruction

Il faut trouver les accès Il faut trouver les accès à la mainà la main

Page 38: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

TransparenceTransparence Utilisation du compilateur Open64Utilisation du compilateur Open64

Compilateur Compilateur Open-Source Open-Source pour l’pour l’ItaniumItanium d’ d’IntelIntel Compile le C, C++ et le Fortran 90/95Compile le C, C++ et le Fortran 90/95

Permet d’implémenter un profileurPermet d’implémenter un profileur Première exécution pour déterminer les Première exécution pour déterminer les

accès intéressants accès intéressants Aide à choisir les accès intéressantsAide à choisir les accès intéressants Laisse juste la distance de préchargement à Laisse juste la distance de préchargement à

déterminerdéterminer

Page 39: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Open64Open64

back end(be, as)

linker(ld)

WHIRL(.B/.I)

obj(.o)

a.out/.so

Data Path Fork and Exec

driver(sgicc/sgif90/sgiCC)

front end + IPA(gfec/gfecc/mfef90)

Src(.c/.C/.f)

WHIRL: Winning Hierarchical Intermediate Representation Language

Page 40: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Open64Open64

Lower to High W.

gfec

gfecc

f90

LocalIPA

MainIPA

LNO

Inliner

WHIRL C

WHIRL fortran

Mainopt

Lowerall

lower I/O

LowerMid W

CG

.B

.I

-O3

.w2c.c

-IPA

.w2c.h

.w2f.f

-O0

-O2/O3

-phase: w=off

Very high WHIRL

High WHIRL

Mid WHIRL

Low WHIRL

Take either path

(only for f90)

Page 41: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

La modification de La modification de Open64Open64

Modification de l’arbre syntaxiqueModification de l’arbre syntaxique Lors d’un chargementLors d’un chargement

Appel d’une fonction externe pour étudier le Appel d’une fonction externe pour étudier le comportement mémoirecomportement mémoire

Utilisant plusieurs paramètres différentsUtilisant plusieurs paramètres différents

Modification du code sourceModification du code source Ajout de deux appels: Ajout de deux appels: create_Markov_manager, create_Markov_manager,

stop_Markov_managerstop_Markov_manager Permet d’initialiser la mémoirePermet d’initialiser la mémoire Permet d’afficher les résultatsPermet d’afficher les résultats

Page 42: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Arbre syntaxiqueArbre syntaxique

Instructions précédentes

Prochaines instructions

Load A

Registre R = A

m->fct(m,R)

Load R

Avantage de Open64:

• Simple à mettre en œuvre

• API riche

Remarques:

• Version simplifiée

• Cas du if, boucle…

Page 43: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

Et ensuite…Et ensuite…

On classe les résultats, conservant On classe les résultats, conservant ceux ayant les meilleurs résultats.ceux ayant les meilleurs résultats. Problème de:Problème de:

ClassementClassement SélectionSélection

Ces derniers seront insérés par le Ces derniers seront insérés par le compilateur pour permettre compilateur pour permettre d’obtenir des accélérations.d’obtenir des accélérations.

Page 44: Optimisation dynamique logicielle des accès aux données par prédiction de Markov sur les pas en mémoire et préchargement. Implantation dans le compilateur

ConclusionsConclusions

L’utilisation de Open64 permetL’utilisation de Open64 permet De choisir les accès De choisir les accès potentielspotentiels et de et de

déterminer la profondeur de création, de déterminer la profondeur de création, de construction…construction…

Donc rendre transparent le modèleDonc rendre transparent le modèle Par contre, la distance de préchargement vis-Par contre, la distance de préchargement vis-

à-vis du temps est difficilement discernable.à-vis du temps est difficilement discernable. Perspectives:Perspectives:

Rendre le modèle plus efficaceRendre le modèle plus efficace Rendre le modèle de sélection plus Rendre le modèle de sélection plus intelligentintelligent