• Aucun résultat trouvé

3 Déplacement dans le temps

3.4. STRATÉGIES ET HEURISTIQUES

3.4.2 Heuristiques d’adaptation

Les stratégies que nous avons présentées précédemment ne sont pas vraiment satisfaisantes : elles peuvent permettre d’atteindre en moyenne un compromis cor-rect entre le temps nécessaire à la sauvegarde et celui que prend le déplacement vers un instant donné, mais elles ne sont pas optimisées. Nous avons donc envisagé d’utiliser des heuristiques basées sur le critère de localité afin d’améliorer poten-tiellement le temps de réponse de l’environnement à une demande de déplacement dans le temps. Ces heuristiques sont basées sur une compréhension plus ou moins fine du comportement de l’utilisateur durant son utilisation de l’environnement.

La première heuristique essaye de faire coïncider les enregistrements avec les placements de marques faits par l’utilisateur, en partant du principe que s’il marque un instant c’est qu’il pense vouloir y revenir ultérieurement. Quand une

3.4. STRATÉGIES ET HEURISTIQUES

Sauvegarde prévue puis annulée

Sauvegarde de l’état de l’environnement Marque non utilisée

Marque utilisée

FIG. 3.4. – Exemple de cas où l’heuristique de sauvegarde anticipée lors du

pla-cement d’une marque est inefficace (entraînant même des contre-performances). la plupart des marques placées dans cet exemple ont entraîné un enregistrement anticipé alors que ce sont des marques postérieures à la date de sauvegarde pré-vue qui sont utilisées pour se déplacer dans le temps : le coût du déplacement est supérieur à ce qu’il serait sans l’heuristique.

marque est placée Scope considère le moment où la prochaine sauvegarde auto-matique devrait avoir lieu. Si ce moment est assez proche de l’instant présent alors la sauvegarde a lieu immédiatement1: un déplacement vers la marque qui vient d’être placée ne nécessitera donc qu’une simple restauration de l’état de l’envi-ronnement.

Le principal inconvénient de cette heuristique est qu’il est facile de rater des marques intéressantes, c’est-à-dire celles qui sont utilisées comme destinations d’un déplacement dans le temps (figure 3.4). Même si elle peut se comporter de manière très satisfaisante si le comportement de l’utilisateur s’y prête (par exem-ple s’il évite de placer des marques dont il ne servira pas pour le déplacement dans le temps) il est utopique de compter sur une telle situation.

Nous avons donc choisi une seconde heuristique qui complète utilement la pré-cédente ou une des stratégies de sauvegarde présentées précédemment. Le prin-cipe est de faire les enregistrements en utilisant une des méthodes précédentes mais de s’autoriser à abandonner certains enregistrements qui semblent inutiles au profit de nouvelles sauvegardes plus fréquemment utilisées. L’abandon de

sau-1: On notera qu’un cas dégénéré de l’utilisation de cette heuristique permet d’enregistrer systé-matiquement l’état de l’environnement lors du placement d’une marque.

vegardes permet de ne pas accroitre inutilement l’espace disque occupé par l’en-semble des enregistrements lorsqu’on en crée un nouveau. Notre heuristique est basée sur une analyse des fréquences de déplacement vers les différents instants de l’exécution : si un instant est souvent destination d’un déplacement dans le temps alors la sauvegarde la moins utilisée est abandonnée au profit d’une nouvelle sau-vegarde vers cet instant. Le coût de certaines sausau-vegardes est effectivement aug-menté du coût de la suppression d’un enregistrement inutilisé mais nous pensons que celui-ci est presque immédiatement compensé par le gain de temps obtenu en obtenant directement l’état de l’environnement lors du déplacement vers l’instant concerné.

Nous pensons que les différentes possibilités de stratégies et d’heuristiques présentées permettent de rendre tolérable, voire faible, le coût du déplacement dans le temps par rapport aux bénéfices que l’on retire de l’utilisation d’un tel mécanisme.

3.5 Performances

Bien que les mécanismes de déplacement dans le temps présentés ici aient été réalisés, que ce soit au niveau de l’environnement lui-même ou à celui des différents composants disponibles, des problèmes techniques liés à la version de NEXTSTEP utilisée pour le développement nous ont empêché de les utiliser. Il nous a donc été impossible de vérifier pratiquement le coût de ce mécanisme ou le bien-fondé et l’efficacité des stratégies et heuristiques que nous avons choisies. Nous ne pouvons donc pas présenter d’évaluation des performances du déplace-ment dans le temps.

Nous noterons cependant que la mise en place des méthodes supportant le déplacement dans le temps pour un composant donné est une opération très simple et que notre objectif de minimiser les contraintes liées à cet opération a été atteint.

3.6 Conclusion

Nous avons proposé un mécanisme de gestion du déplacement dans le temps basé sur une sauvegarde et une restauration de l’état complet de l’environnement à

3.6. CONCLUSION

des instants déterminés. Ce mécanisme peut employer différentes stratégies d’en-registrement associées à des heuristiques d’adaptation destinées à les rendre plus efficaces. Même si la sauvegarde et la restauration des états de l’environnement sont des opérations coûteuses, la seconde heuristique proposée fait que sur une session d’évaluation de performance, l’utilisation de ressources pour le déplace-ment dans le temps se fera au profit des instants qui sont effectivedéplace-ment utilisés comme destination de déplacements dans le temps, évitant autant que possible un gaspillage de ces ressources. Enfin, il suffit qu’un instant de déplacement dans le temps soit un peu éloigné — en nombre d’événements s’entend — du début de la trace pour qu’il soit rentable de supporter une sauvegarde et des restaurations de l’état de l’environnement afin d’éviter de reprendre le traitement de la trace à son début à chaque déplacement.

4

Visualisation

L

A VISUALISATION est le moyen par lequel les informations sur le compor-tement de l’application au cours de son exécution sont présentées à l’utili-sateur pour qu’il puisse les analyser. La facilité et la précision avec laquelle cette analyse peut être menée dépend beaucoup de la qualité des visualisations propo-sées par l’environnement d’évaluation de performance.

Le principal problème de la visualisation pour l’évaluation de performance est de savoir comment présenter les informations afin qu’elles soient facilement com-préhensibles (MILLER 1993). Contrairement à la visualisation scientifique pour laquelle cette tâche est facilitée par la possibilité de présenter les informations telles qu’elles se présentent dans la réalité (POST et HIN 1991) il est difficile de trouver une représentationréelled’une application parallèle et de son exécution sur une machine parallèle. Les environnements d’évaluation de performance ont donc recours à des représentations abstraites du comportement des applications, principalement à travers la caractérisation de ce comportement par des indices de performance. Les abstractions utilisées doivent être les plus proches possibles de la manière dont l’utilisateur se représente son application et ses caractéristiques afin de faciliter leur appréhension.

Nous présentons dans ce chapitre les principes de la visualisation en géné-ral et dans le cadre de Scope, en insistant particulièrement sur les possibilités de personnalisation et de manipulation des représentations qui sont offertes à l’utili-sateur. Les concepts évoqués dans cette présentation sont ensuite mis en évidence

à travers la description d’une visualisation de Scope, cette visualisation permet-tant la représentation et la manipulation directe d’un graphe représenté sous forme tridimensionnelle.

4.1 Principes