Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parCécile Barbeau Modifié depuis plus de 7 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.