• Aucun résultat trouvé

7.2 Micro-Benchmarks

7.2.2 Communications concurrentes

Cette partie a pour but d’´evaluer l’efficacit´e des m´ecanismes de protection impl´ement´es dans NEWMA

-DELEINE. Nous utilisons ici des programmes multi-thread´es acc´edant intensivement `a la biblioth`eque de communication de mani`ere concurrente. Pour cette raison, la version de MPICH2 NEMESISutilisant NEWMADELEINEet PIOMANn’est pas ´evalu´ee ici car cette pile logicielle ne supporte pas l’utilisation de threads par l’application. OPENMPI ne figure pas dans les r´esultats pr´esent´es ici car, malgr´e le sup-port des acc`es concurrents affich´e, cette impl´ementation g´en`ere syst´ematiquement des erreurs pour ces tests. En effet, bien que des m´ecanismes de protection aient ´et´e impl´ement´es dans OPEN MPI, ceux-ci n’ont ´et´e que tr`es peu test´es et les erreurs sont tr`es fr´equentes [Bar09, Squ09].

7.2.2.1 Impact du verrouillage

Nous ´evaluons ici l’impact des m´ecanismes de protection lorsque plusieurs threads acc`edent de mani`ere concurrente `a la biblioth`eque de communication. Pour cela, nous utilisons le programme de test con-current ping qui effectue des “ping-pong” de mani`ere concon-currente. Les deux processus lancent cha-cun un nombre d´efini de threads. Les paires de threads communiquent alors entre eux et on mesure le temps de transfert moyen pour un message de 8 octets.

96 CHAPITRE 7. ´EVALUATIONS 0 2 4 6 8 10 12 1 2 4 8 16 32 64 128 256 512 1K 2K Latence (µs)

Taille des messages (octets) MPICH2:NewMad

MPICH2:NewMad:PIOMan OpenMPI MPICH2:MX

FIGURE7.9 – Impact de PIOMANdansMPICH2 sur la latence du r´eseau MYRINET

0 2 4 6 8 10 12 1 2 4 8 16 32 64 128 256 512 1K 2K Latence (µs)

Taille des messages (octets) MPICH2:NewMad

MPICH2:NewMad:PIOMan OpenMPI MVAPICH2

7.2. MICRO-BENCHMARKS 97 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 1 2 4 8 16 32 64 128 256 512 1K 2K Latence (µs)

Taille des messages (octets) MPICH2:NewMad

MPICH2:NewMad:PIOMan OpenMPI MVAPICH2

FIGURE7.11 – Impact de PIOMANdansMPICH2 sur la latence en m´emoire partag´ee

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 1K 2K 4K 8K 16K 32K 64K 128K 256K 512K 1M 2M 4M 8M Débit (Mo/s)

Taille des messages (octets) MPICH2:NewMad

MPICH2:NewMad:PIOMan OpenMPI MVAPICH2

98 CHAPITRE 7. ´EVALUATIONS 0 10 20 30 40 50 60 1 2 3 4 5 6 7 8 Latence (µs) Nombre de threads

NewMadeleine + PIOMan (gros grain) NewMadeleine + PIOMan (grain fin) MVAPICH2

FIGURE 7.13 – Impact des m´ecanismes de verrouillage sur des communications concurrentes sur le

r´eseauINFINIBAND

Les r´esultats mesur´es pour les r´eseaux INFINIBAND et MYRINET sont report´es dans les figures 7.13 et 7.14. Les m´ecanismes de verrouillage `a gros grain et `a grain fin ont des comportements similaires : lorsque le nombre de threads augmente, la latence moyenne augmente l´eg`erement. La contention sur les verrous ainsi que la taille des sections critiques influent sur cette augmentation. Ainsi, la latence obtenue avec le verrouillage `a grain fin, dont la section critique est petite, augmente moins vite que celle obtenue avec le verrouillage `a gros grain.

Les performances obtenues avec MVAPICH2 et MPICH2-NEMESIS sont beaucoup plus influenc´ees par le nombre de threads. Ainsi, pour chaque thread ajout´e, la latence mesur´ee augmente d’environ 7 µs pour MVAPICH2 et de 15 `a 20 µs pour MPICH2. Ces performances peuvent ˆetre expliqu´ees par la taille importante de la section critique dans ces impl´ementations ainsi que par la contention sur les verrous employ´es.

7.2.2.2 Impact de la fonction d’attente

Cette partie a pour but d’´evaluer l’impact des fonctions d’attente impl´ement´ees dans NEWMADELEINE. Pour cela, nous utilisons le programmelatency mt inclus dans la suite de benchmarks OMB [LCW+03]. Il s’agit ici encore de mesurer la latence moyenne d’un programme multi-thread´e pour des messages de 4 octets : le processus r´ecepteur lance un certain nombre de threads qui communiquent avec un unique thread du cˆot´e ´emetteur. Ainsi, les threads du r´ecepteur attendent le thread ´emetteur la plupart du temps. Les r´esultats obtenus pour le r´eseau INFINIBAND sont pr´esent´es dans la figure 7.16. La latence me-sur´ee pour MVAPICH2 augmente fortement avec le nombre de threads. Cette augmentation est due `a l’impl´ementation des fonctions d’attente dans MVAPICH2 sous forme d’attente active. Les threads en

7.2. MICRO-BENCHMARKS 99 0 20 40 60 80 100 120 140 1 2 3 4 5 6 7 8 Latence (µs) Nombre de threads

NewMadeleine + PIOMan (gros grain) NewMadeleine + PIOMan (grain fin) MPICH2:MX

FIGURE 7.14 – Impact des m´ecanismes de verrouillage sur des communications concurrentes sur le

r´eseauMYRINET 1 10 100 1 2 4 8 16 32 64 128 Latence (µs)

Nombre de threads de réception NewMadeleine + PIOMan (gros grain)

NewMadeleine + PIOMan (grain fin) MVAPICH2

FIGURE7.15 – Impact des fonctions d’attente sur des communications concurrentes sur le r´eseau IN

100 CHAPITRE 7. ´EVALUATIONS 1 10 100 1000 1 2 4 8 16 32 64 128 Latence (µs) Nombre de threads NewMadeleine + PIOMan (gros grain)

NewMadeleine + PIOMan (grain fin) MPICH2:MX

FIGURE7.16 – Impact des fonctions d’attente sur des communications concurrentes sur le r´eseau MY

-RINET

attente scrutent le r´eseau de mani`ere concurrente, entraˆınant de la contention. Les performances obte-nues avec le m´ecanisme d’attente mixte impl´ement´e dans PIOMANet utilis´e dans NEWMADELEINE

sont, elles, fortement am´elior´ees. Hormis un “saut” en passant de 2 `a 4 threads, la latence mesur´ee reste constante `a environ 3.6 µs, mˆeme lorsque la machine est surcharg´ee (i.e. il y a plus de threads que de cœurs). Ce comportement s’explique par l’attente mixte utilis´ee par les threads. Lorsque ceux-ci attendent un message, ils se bloquent rapidement sur une condition et ne sont r´eveill´es que lorsque le message est arriv´e. Ainsi, mˆeme avec un grand nombre de threads, la machine n’est pas surcharg´ee et la scrutation du r´eseau peut se faire avec une faible contention.

Les comportements observ´es pour le r´eseau MYRINET sont similaires `a ceux observ´es pour INFINI -BAND. Comme le montre la figure 7.16, la latence mesur´ee pour MPICH2 augmente avec le nombre de threads. Le m´ecanisme d’attente mixte impl´ement´e dans PIOMAN permet `a NEWMADELEINE de conserver une latence quasiment constante.