• Aucun résultat trouvé

4.3 Expérimentations

4.3.2 Applications d’évaluation

Nous avons mené des expérimentations sur trois applications différentes. Ces trois applications sont de type Single Program Multiple Data (Programme Unique Données Multiples).

Nous allons rapidement présenter ces applications, de manière à identifier leurs caractéristiques. Pour chacune de ces applications, nous présentons les temps d’exécution non tolérante aux pannes ainsi que la taille d’un point de reprise d’une activité pour chaque configuration, selon le nombre de nœuds utilisés et la taille des données initiales. La notation ∅ indique que le nombre de ressources est trop faible pour le calcul demandé. De plus, nous donnons le motif de communication pour une taille de donnée et un nombre de nœuds fixe, ainsi que la quantité de données transmise par les messages entre les différentes activités. Pour ces gra-phiques, l’abscisse donne l’identifiant de l’activité réceptrice, et l’ordonnée donne l’identifiant de l’activité émettrice. La densité de la couleur indique le nombre de messages envoyés, ou la quantité de données envoyée selon les cas.

Noyau IS (Integer Sort) Un tri d’entiers distribué type bucket-sort.

Cette application est une implémentation en ProActive du noyau IS de la bi-bliothèque de benchmarks NPB (Nas Parallel Benchmarks) [BAI 95]. Les données d’entrée pour les applications implémentées dans la bibliothèque NBP sont stan-dardisées, réparties en six classes S, W, A, B, C et D selon leur taille. La classe S est la plus petite, la classe D est la plus grande. Nous testons ici IS avec les classes A et B, qui correspondent respectivement à des tableaux d’entiers de taille 223et 225.

Noyau IS

Nombre de nœuds 2 4 8 16 32

Classe A Temps d’exécution (sec)Taille d’un point de reprise (Mo) 4,0486,08 3,7243,06 3,922,89 4,4211,32 5,275,61 Classe B Temps d’exécution (sec)Taille d’un point de reprise (Mo) 10,05 7,42 7,06 6,73

186,4 88,12 44,6 11,56

FIG. 4.10 – Temps d’exécution et taille de point de reprise pour IS

Les figures 4.11 et 4.12 présentent respectivement les motifs de communica-tion et la quantité de données transmise pendant l’exécucommunica-tion de IS en classe B sur 16 nœuds.

FIG. 4.11 – Motif de communication du noyau IS en classe B sur 16 nœuds

On peut voir que le nombre de messages envoyés durant l’exécution est faible (au maximum 65 messages). On constate aussi que le motif de communication est de type all-to-all régulier, c’est à dire que toutes les activités communiquent ensemble.

On remarque que l’activité indexée 1 émet et reçoit plus de messages que toutes les autres. Cette activité est utilisée dans notre implémentation comme réducteur : lorsqu’une valeur doit être calculée à partir de toutes les valeurs calcu-lées par toutes les activités puis redistribuées à toutes les activités, c’est l’activité 1 qui collecte les valeurs puis redistribue le résultat.

4.3 Expérimentations 87

FIG. 4.12 – Quantité de données transmises du noyau IS en classe B sur 16 nœuds

Noyau CG (Conjugate Gradient) Une approximation de la plus petite valeur propre d’une matrice creuse.

Cette application est aussi une implémentation en ProActive d’un noyau de la bibliothèque de benchmarks NPB. Nous testons ici le noyau CG avec les classes A,B et C, qui correspondent respectivement à des matrices d’ordre 14000, 75000, 150000. On notera que les matrices, étant creuses, ne doivent pas être entièrement représentées en mémoire.

Noyau CG

Nombre de nœuds 2 4 8 16 32

Classe A Temps d’exécution (sec)Taille d’un point de reprise (Mo) 11,2133,5 12,317,09 17,48,98 19,175,48 27,432,96 Classe B Temps d’exécution (sec)Taille d’un point de reprise (Mo) 182,01221,94 142,45119,84 123,6661,7 119,2736,84 130,2819,18 Classe C Temps d’exécution (sec)Taille d’un point de reprise (Mo) 331,58 206,73 180,7 187,15

305,29 156,87 90,13 47,29

FIG. 4.13 – Temps d’exécution et taille de point de reprise pour CG

Les figures 4.14 et 4.15 présentent respectivement les motifs de communica-tion et la quantité de données transmise pendant l’exécucommunica-tion de CG en classe C sur 16 nœuds.

FIG. 4.14 – Motif de communication du noyau CG en classe C sur 16 nœuds

FIG. 4.15 – Quantité de données transmises du noyau CG en classe C sur 16 nœuds

C’est l’application testée qui engendre le plus de communication entre les ac-tivités (au maximum 11932 messages vers une même activité), la taille moyenne

4.3 Expérimentations 89

d’un message étant petite (environ 48 Ko). On constate dans la figure que le motif de communication ne met pas en jeu de communication de type all-to-all, et qu’il n’y a pas d’activité utilisée comme point central de réduction.

Ce noyau est aussi très irrégulier, que ce soit au niveau du motif de communi-cation (les activités cibles d’une activité donnée varient durant l’exécution) ou au niveau de la taille des données (les messages envoyées par une activité ont une taille très variable selon la cible et le moment de l’exécution).

Jacobi Résolution d’équations linéaires

Nous testerons aussi notre mécanisme de tolérance aux pannes avec l’applica-tion Jacobi. Cette applical’applica-tion qui n’est pas une applical’applica-tion d’évalual’applica-tion standard nous permet cependant de contrôler plus finement les paramètres telle que la taille des données ou le nombre d’itération du calcul, puisque les données d’en-trées ne sont pas standardisées.

La méthode de Jacobi est un algorithme qui détermine les solutions d’un sys-tème d’équations linéaires en réduisant itérativement une matrice de valeurs de type double. Une valeur dans la matrice est réduite en fonction de la valeur de ses quatre voisins cardinaux. Dans l’algorithme original, cette réduction itérative est stoppée lorsque la différence entre deux valeurs consécutives est inférieure à un seuil donné. Dans notre cas, nous fixons arbitrairement le nombre d’itérations à 500, de manière à pouvoir comparer les différents résultats.

Jacobi

Nombre de nœuds 9 16 25 36 45 64

30002 Temps d’exécution (sec) 93,06 64,39 51,66 38,8 31,62 27,98 Taille point de reprise (Mo) 15,68 8,83 5,66 3,93 2,89 2,22 50002 Temps d’exécution (sec) 226,61 134,1 96,94 80,51 67,81 56,15

Taille point de reprise (Mo) 43,45 24,48 15,68 10,9 8,01 6,14 70002 Temps d’exécution (sec) 251,6 175,23 126,82 103,32 86,32

Taille point de reprise (Mo) 47,94 30,7 21,3 15,67 12

FIG. 4.16 – Temps d’exécution et taille de point de reprise pour Jacobi Les figures 4.17 et 4.18 présentent respectivement les motifs de communica-tion et la quantité de données transmise pendant l’exécucommunica-tion de Jacobi sur une matrice carrée de 7000 de coté sur 16 nœuds.

La matrice qui doit être réduite est découpée et distribuée sur les nœuds dis-ponibles, avec une activité par nœud. Le découpage est régulier, et est fait de ma-nière à réduire le nombre de données à transmettre. Chaque activité réduit une sous-matrice de taille similaire, et doit communiquer avec au maximum 4 activi-tés : les quatre activiactivi-tés avec lesquelles elle partage une bordure de sous-matrice. On le constate sur les figures 4.17 et 4.18 : chaque activité communique avec au maximum quatre autres activités, et ce de manière parfaitement régulière. Le nombre et la taille des messages restent réguliers durant toute l’application. 1000 messages sont envoyés entre chaque activité, faisant transiter 6,69 Mo de données au total.

FIG. 4.17 – Motif de communication de Jacobi 7000 sur 16 nœuds

4.3 Expérimentations 91