La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Réduction des communications dans l'outil STEP Alain Muller

Présentations similaires


Présentation au sujet: "Réduction des communications dans l'outil STEP Alain Muller"— Transcription de la présentation:

1 Réduction des communications dans l'outil STEP Alain Muller
PIPS Developer Day, Paris 25 octobre 2010

2 STEP : OpenMP → MPI OMP !$omp parallel !$omp do do i= 1 , N A(i)=...
Enddo !$omp enddo !$omp end parallel P A T1 T2 T3 OMP → MPI !$omp parallel !$omp do do i= 1 , N A(i)=... enddo !$omp enddo !$omp end parallel P1 P2 P3 A A A

3 Génération des communications FULL
P1 P2 P3 !$omp do do i= 1 , N A(i)=... enddo !$omp enddo A A A SEND = WRITE ∩ OUT Communications en fin de construction OpenMP Chaque processus envoie sa région SEND à tous les autres processus

4 Limitation des communications FULL
!$omp parallel !$omp do do i= 1 , N A[i]=... enddo !$omp enddo A[i]=f(A[i-1],A[i+1]) !$omp endparallel P1 P2 P3 A A A Mise à jour complète des tableaux en fin de construction OpenMP Génération des communications indépendamment des calculs suivants

5 Génération des communications PARTIAL
!$omp parallel !$omp do do i= 1 , N A[i]=... enddo !$omp enddo A[i]=f(A[i-1],A[i+1]) !$omp endparallel P1 P2 P3 A A A Calcul des régions RECV pour chaque construction OpenMP Prise en compte des données à jour localement Limitation des données échangées : COM(Pi→Pj) = ( SEND(Pi) ∩ RECV(Pj) ) / Uptodate(Pj)

6 Choix du type de communication
!$omp parallel !$omp do do i= 1 , N A[i]=f(A[i-1],A[i+1]) enddo !$omp enddo !$omp endparallel P1 P2 P3 while end while A A A Dans le DG: instructions suivant un bloc OpenMP pour déterminer le type de communication FULL ou PARTIAL

7 Comparaison entre les deux versions
FULL FULL / PARTIAL Analyses Régions SEND Régions SEND et RECV DG A l'exécution Instanciation des régions SEND Instanciation des régions SEND et RECV Calcul COM(Pi → Pj) Gestion des régions UPTODATE Mise à jour des données Complète Partielle

8 Cas test : Solveur itératif
Tableau des données REAL*4 Plate-forme Bull NOVA 16 noeuds 4 Intel Xeon quad-core E7350 (2.93GHz) par noeud 48GB DDR2 SDRAM par noeud Interconnexion InfiniBand (20GB/s) Deux mesures de performance 1 itération 12 itérations

9 Solveur itératif : 1 itération
real*4 real*4 1 ms 72 ms

10 Solveur itératif : 12 itérations
1 ms 72 ms

11 Solveur itératif - Speedup
Passage à l'échelle possible

12 Futur Générer des communications optimisées entre plusieurs modules
Propagation des régions SEND et RECV au niveau CALLERS en se basant sur le DG Calculer les communications Pi → Pj statiquement lors de la transformation Décrire explicitement les données à échanger dans le code généré Possible sur la plupart de nos cas tests Restreint aux cas de découpage des itérations de boucle statique : clause OpenMP schedule(static) Traiter des programmes en C et Fortran90

13 Réduction des communications dans l'outil STEP Alain Muller
STEP : OpenMP → MPI Génération des communications FULL Limitation des communications FULL Génération des communications PARTIAL Choix du type de communication Comparaison entre les deux versions Cas test : Solveur itératif Solveur itératif : 1 itération Solveur itératif : 12 itérations Solveur itératif - Speedup Futur 25 octobre 2010


Télécharger ppt "Réduction des communications dans l'outil STEP Alain Muller"

Présentations similaires


Annonces Google