• Aucun résultat trouvé

Calcul du surcoût lié aux échanges de données MotivationMotivation

5 Schémas d’évaluation

5.1. COMPOSANTS D’ANALYSE ET DE VISUALISATION

5.1.3 Calcul du surcoût lié aux échanges de données MotivationMotivation

Les applications parallèles sont développées afin de gagner du temps par rap-port aux implémentations séquentielles. Le principal souci concernant ces appli-cations est leur efficacité, i.e. la manière dont elles utilisent les processeurs de calcul des machines parallèles. L’augmentation de cette efficacité est intéressante sur deux plans : le coût d’utilisation de la machine parallèle pour la résolution d’un problème donné diminue puisqu’elle est utilisée moins longtemps ; ensuite l’application peut, à temps d’exécution constant, traiter des problèmes de taille plus importante ou avec une plus grande finesse de modélisation.

Taille Simulateur Sim. et hist. Sim. et texte Tous comp. 1 0;309996 0;379987 4 ;549883 4 ;789872 2 0;549973 0;589983 8 ;839743 8 ;889759 4 0;879970 0;9434592 17 ;169513 17 ;294851 16 3;469866 3;652728 66 ;938044 67 ;478061 32 6;989725 7;369715 134;066081 135;176247

TAB. 5.1. – Temps de traitement de traces dans différentes conditions (de

gauche à droite : avec juste un simulateur, avec un simulateur et le composant de construction d’histogramme sans interface, avec un simulateur et un composant de visualisation textuelle de la trace, avec ces deux composants et le composant de construction d’histogramme complet. Les temps sont exprimés en secondes.

Nous pouvons distinguer deux activités principales dans une application paral-lèle : le calcul ou traitement des données et l’échange de données entre les tâches de l’application. Le temps consacré au mouvement de données entre les proces-sus lorsqu’ils ne calculent pas est appelé surcoût lié aux échanges de données. L’efficacité de l’application peut être définie par le rapport entre le temps de cal-cul (temps d’exécution diminué de ce surcoût) et le temps d’exécution. La re-cherche d’une efficacité maximale passe donc par la minimisation du surcoût lié aux échanges de données.

Les mesures permettant d’obtenir ce surcoût sont prises par échantillonnage : à des instants donnés nous calculons le temps cumulé consacré par l’application aux échanges de données et divisons ce temps par le temps d’exécution cumulé des différentes tâches. Le rapport obtenu exprimé sous forme de pourcentage in-dique le tempsperdupar les tâches de l’application à s’échanger des données. Le choix des instants échantillonnage détermine la fréquence avec laquelle cette information est mise à jour mais également sa qualité. Deux exemples de tels choix sont ceux de l’échantillonnage par intervalles de temps (figure 5.3 page ci-contre) et de l’échantillonnage par phases (figure 5.4 page suivante). La pre-mière méthode garantit que des mesures seront produites à intervalles réguliers ; elle donnera des valeurs importantes lorsque toutes les tâches ont été bloquées en attente de données pendant un temps couvrant un intervalle d’échantillonnage complet. La seconde ne calcule le surcoût lié aux échanges de données qu’à la fin d’une phase de communication et de calcul : les valeurs produites auront donc

5.1. COMPOSANTS D’ANALYSE ET DE VISUALISATION i 1 i 2 i 3 i 4 i 5 i 6 i 7 i 8 i 9 i 10 i 11

FIG. 5.3. – L’échantillonnage par intervalles de temps consiste à prendre des

mesures toutes les n unités de temps. Son inconvénient est d’avoir tendance à exagérer le surcoût lié aux échanges de données (cette exagération diminuant cependant au cours du temps).

p 2 p 4 p 6 p 3 p 5 p 1

FIG. 5.4. – L’échantillonnage par phase est celui qui donne les meilleures

in-formations. Il consiste à prendre des mesures chaque fois que toutes les tâches de l’application ont fini de recevoir leurs données et de travailler dessus.

tendance à mieux représenter l’évolution du temps consacré aux échanges de don-nées même si la fréquence de mise à jour de l’indicateur peut être moindre que dans le cas de l’échantillonnage par intervalles de temps.

Réalisation

Le composant dont nous décrivons ici la réalisation est uncomposant inté-grése chargeant d’effectuer une transformation de données mais aussi de pré-senter les informations qu’il produit par l’intermédiaire d’une visualisation. Nous l’avons conçu ainsi afin d’évaluer le coût de la réalisation d’un composant un tant soit peu complexe.

Ce composant travaille sur des événements tels qu’ils sont présentés par la partie spécifique au modèle de programmation de l’environnement Scope. Les événements qui lui sont fournis sont les événements de communication lesquels comportent d’une part une durée indiquant le temps consacré par l’application à la communication et d’autre part un indicateur permettant de savoir si l’événement représente le début ou la fin d’une communication. En plus de ces informations le composant utilise la date de l’événement et l’identification de l’entité de l’appli-cation (e.g. une tâche) l’ayant produit.

Le calcul du surcoût lié aux communications peut se faire suivant six mé-thodes : par intervalles de temps, toutes lesnfins de réception (en comptant celles-ci soit globalement soit pour chaque tâche), toutes lesnfins de phases (en considé-rant le surcoût cumulé sur ces dernières phases ou sur la totalité des phases depuis le début de l’exécution) ou une seule fois à la fin du traitement de l’ensemble des données. Le composant calcule également les minimum et maximum des valeurs du surcoût lié au communications.

En plus de ces indicateurs le composant produit un certain nombre d’autres informations. Ce sont tout d’abord les comptages d’envois de données effectués par les tâches (que ces envois soient terminés ou non) et le nombre de fois où elles ont effectivement reçu des données, ces informations permettant de détermi-ner le nombre d’échanges de données en cours et de s’apercevoir que des tâches prennent du retard en ne réceptionnant pas assez rapidement les données qui leur sont destinées. C’est également un comptage du nombre de phases échange-calcul qui ont eu lieu depuis le début du traitement des données. Le composant tient éga-lement à jour un indicateur de tendance de la valeur du surcoût lié aux échanges

5.1. COMPOSANTS D’ANALYSE ET DE VISUALISATION

de données : cet indicateur donne le sens de variation actuel du surcoût — en hausse ou en baisse — ainsi qu’un comptage indiquant depuis combien de temps (en nombre d’échantillonnages) il varie dans ce sens.

L’ensemble des données calculées est affiché pour information dans l’inter-face du composant (figure 5.5 page suivante). Le comptage du nombre de phases n’est mis à jour dans l’interface que lorsqu’un échantillonnage a lieu alors que les comptages de début et de fin d’échanges de données sont affichés dès qu’ils changent. Au moment de l’échantillonnage le nombre d’échanges de données ter-minés, i.e. la valeur du comptage de fins de réception de données, de même que les informations de l’indicateur de tendance, sont mises à jour.

La partie visualisation du composant se présente sous la forme d’une jauge af-fichant les extrema et la valeur courante de l’indicateur de surcoût. Après chaque mise à jour de cet indicateur le composant passe sa valeur courante à la jauge qui calcule elle-même les extrema (la raison en est que la jauge est une repré-sentation générique qui peut être utilisée dans de nombreuses visualisations et ne doit donc ni accéder directement à des informations sur les données qu’elle doit représenter ni exiger des informations simples qu’elle est capable de calcu-ler d’elle-même, afin d’être réutilisable sans contraintes). Elle affiche ensuite ces extrema et la valeur courante de sa donnée sous forme d’une barre découpée en sections de couleurs différentes en fonction de ce qui est représenté (le minimum, la valeur courante ou le maximum).

Évaluation

Le composant est fait avec deux classes, l’une pour la jauge de visualisation et l’autre pour le composant proprement dit c’est-à-dire le calcul des indicateurs et autres informations, la gestion de l’interface et la mise à jour de l’affichage. Le code propre au composant représente deux cents instructions Objective C, la plupart d’entre elles se chargeant de l’interface ou de la gestion mémoire assez complexe utilisée pour garantir l’extensibilité du composant. Le code de la jauge, quant à lui, fait moins de cent cinquante instructions dont une cinquantaine pour la seule gestion de la personnalisation des couleurs par glisser-jeter de couleurs sur les sections de la jauge. Nous pensons que cela représente un coût de dévelop-pement plutôt faible étant donné ce que réalise le composant.

Affichage des donnéees globales et instantanées Jauge de visualisation des extrema et de la valeur courante de l’indicateur

Indicateur de tendance

Comptages

Choix de la fréquence et du type d’échantillonnage

FIG. 5.5. – L’interface du composant de calcul du surcoût lié aux échanges

de données fournit des indications à caractères instantané et global. Les infor-mations sont présentéees sous formes textuelles et graphiques. Cette interface permet également de choisir le type et la fréquence de l’échantillonnage de l’in-dicateur de surcoût.