28

Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau

Embed Size (px)

Citation preview

Page 1: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 2: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 3: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 4: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 5: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 6: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 7: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 8: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 9: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 10: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 11: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 12: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 13: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau

Importance du réseau dans des architectures MIMD

Tout échange entre les processeurs nécessite un transfert de données via le réseau d’interconnections des processeurs.

Le coût d ’un tel transfert :

transittransfert

packlatence tdv

NttjiNt )1(),,(

où d est le nombre de connections directes nécessaire pour passer du processeur i au processeur j.

Page 14: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 15: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 16: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 17: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 18: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau

Granularité des applications :

C ’est le rapport entre le temps passé par l ’application à effectuer des opérations de calcul et le temps passé dans les communications entre les processeurs :

ioncommunicat

calcul

t

t

Si ce rapport est élevé l ’application se prête bien au parallèle, au contraire s ’il est faible l ’application sera difficilement parallélisable.

Page 19: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau

Exemples de programmations parallèles :

- réactualisation des données : X=X+X

- produit scalaire : ps=(X,Y)

...

Page 20: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau

Accélération (Speed-up) Sp =

Temps d ’exécution (wall clock) :

),(

)1,(

pNt

Nt

),( pNtoù N est la taille du problème à traiter

et p le nombre de processeurs utilisés

Efficacité =p

Sp La scalabilité est l ’évolution de l’efficacité en fonction du nombre de processeurs.

Critères d’évaluation d’applications parallèles

Page 21: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 22: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 23: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau

Les modèles de programmation parallèle

- par des données parallèles [HPF] [Open MP] :

introduction de nouveaux types de données (vecteur parallèle) et de nouvelles instructions (FORALL). Principalement utilisé sur des machines à mémoire partagée et à adressage unique.

Synchronisation importante après chaque instruction scalaire ou parallèle mais implémentation relativement simple.

- par échanges de messages [pvm] [mpi] :

utilisation de librairies contenant des instructions d ’envois, de réceptions de messages plus des instructions de synchronisation .

Le programmeur doit gérer le parallélisme, mais les synchronisations sont moins fréquentes.

Page 24: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 25: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau
Page 26: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau

Exemple de programmation avec MPI :

#include <mpi.h >

...

MPI_Init(...)

int a=6,b;

MPI_Send(1,&a,1,MPI_INT,...)

MPI_Recv(1,&b,1,MPI_INT,...)

cout << b << endl;

MPI_Finalize()

#include <mpi.h>

MPI_Init(...)

int a=12,b;

MPI_Recv(0,&b,1,MPI_INT;...)

MPI_Send(1,&a,1,MPI_INT,...)

cout << b << endl;

MPI_Finalize()

Proc 0 Proc 1

12 6

Page 27: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau

Principales fonctions de la librairie MPI :

MPI_Init(...)

MPI_Finalize()

MPI_Comm_rank(...)

MPI_Comm_size(...)

double MPI_Wtime()

MPI_Send(…)

MPI_Recv(…)

MPI_Allreduce(...)

MPI_Bcast(..)

MPI_Isend(…)

MPI_Irecv(...)

MPI_Waitall(..)

MPI_Barrier(...)

MPI_COMM_WORLD

Page 28: Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau

Exemple de programmation parallèle (bis) :

La résolution système linéaire