Académique Documents
Professionnel Documents
Culture Documents
Plan
.
INF 560
Calcul Parallèle et Distribué Communications et routage
Cours 7 Généralités
. Cas de l’hypercube (diffusion simple)
Cas du tore 2D (multiplication de matrices)
Eric Goubault et Sylvie Putot Algorithmique sur ressources hétérogènes
Allocation et équilibrage de charges statique/dynamique
Ecole Polytechnique Cas de l’algorithme LU: sur anneau (1D) puis tore (2D)
2 février 2015
Etape 1:
C00 C01 C02 C03 A01 A02 A03 A00 B10 B21 B32 B03
C10 C11 C12 C13 A A13 A10 A11 B20 B31 B02 B13
+ = 12 ⊗
C20 C21 C22 C23 A23 A20 A21 A22 B30 B01 B12 B23
C30 C31 C32 C33 A30 A31 A32 A33 B00 B11 B22 B33
E. Goubault et S. Putot 21/49 E. Goubault et S. Putot 22/49
Etape 0:
C00 C01 C02 C03 A00 A00 A00 A00 B00 B01 B02 B03
/∗ p a s de mouvements de d o n n e e s a v a n t l e s c a l c u l s ∗/
C10 C11 C12 C13 A A11 A11 A11 B B11 B12 B13
+ = 11 ⊗ 10 /∗ c a l c u l du p r o d u i t de m a t r i c e s ∗/
C20 C21 C22 C23 A22 A22 A22 A22 B20 B21 B22 B23
b r o a d c a s t (A( x , x ) ) ;
C30 C31 C32 C33 A33 A33 A33 A33 B30 B31 B32 B33 f o r a l l ( k =0; k<q−1) {
Pour tous i, j ∈ {0, . . . , q − 1} en parallèle, calcul de L o c a l P r o d M a t (A , B , C ) ;
V e r t i c a l R o t a t i o n (B , u p wa r d s ) ;
Cij = Aii × Bij b r o a d c a s t (A( k+x , k+x ) ) ; }
Etape 1:
L o c a l P r o d M a t (A , B , C ) ;
C00 C01 C02 C03 A01 A01 A01 A01 B10 B11 B12 B13 V e r t i c a l R o t a t i o n (B , u p wa r d s ) ;
C10 C11 C12 C13 A A12 A12 A12 B B21 B22 B23
+ = 12 ⊗ 20 /∗ p a s de mouvements de d o n n e e s a p r e s l e s c a l c u l s ∗/
C20 C21 C22 C23 A23 A23 A23 A23 B30 B31 B32 B33
C30 C31 C32 C33 A30 A30 A30 A30 B00 B01 B02 B03
Pour tous i, j ∈ {0, . . . , q − 1} en parallèle, calcul de
Cij = Ci,j + Ai(i+1) × B(i+1)j
Etape 0:
C00 C01 C02 C03 A00 A01 A02 A03 B00 B10 B20 B30
Transposition préalable de B C10 C11 C12 C13 A A11 A12 A13 B B11 B21 B31
+ = 10 × 01
C20 C21 C22 C23 A20 A21 A22 A23 B02 B12 B22 B32
Sommes globales sur les lignes de processeurs (des produits
C30 C31 C32 C33 A30 A31 A32 A33 B03 B13 B23 B33
calculés à chaque étape) accumulées dans le coefficient
correspondant dans C ∑ i ∈ {0, . . . , q − 1} en parallèle, calcul de
Pour tous
Cii = q−1
j=0 Aij × Bji (somme par ligne des produits par blocs)
Une diagonale du tore calculée dans C à chaque étape -
Etape 1:
représentée en gras dans les transparents ci-après
C00 C01 C02 C03 A00 A01 A02 A03 B01 B11 B21 B31
Rotation verticale de B vers le haut à chaque étape C10 C11 C12 C13 A A11 A12 A13 B B12 B22 B32
+ = 10 × 02
C20 C21 C22 C23 A20 A21 A22 A23 B03 B13 B23 B33
C30 C31 C32 C33 A30 A31 A32 A33 B00 B10 B20 B30
i ∈ {0, . . . , q − 1} en parallèle, calcul de
Pour tous ∑
Ci(i+1) = q−1
j=0 Aij × Bj(i+1) (somme par ligne des produits blocs)
.
Distribute incr(B,t[1],t[2],...t[p]) #atomes c1 c2 c3 cout proc.sel. alloc.σ
.
0 0 0 0 1
/∗ I n i t i a l i s a t i o n : a u c u n e t a c h e a d i s t r i b u e r m=0 ∗/
f o r ( i =1; i <=p ; i ++) c [ i ] = 0 ; 1 1 0 0 3 2 σ[1] = 1
/∗ c o n s t r u i t i t e r a t i v e m e n t l ’ a l l o c a t i o n s i g m a ∗/ 2 1 1 0 2.5 1 σ[2] = 2
f o r (m=1;m<=B ;m++)
k = argmin ( k i n { 1 , . . . p })( t [ i ] ∗ ( c [ i ] + 1 ) ) ; 3 2 1 0 2 3 σ[3] = 1
c [ k ]= c [ k ] + 1 ; 4 2 1 1 2 1 σ[4] = 3
s i g m a [m]= k ;
r e t u r n ( sigma [ ] , c [ ] ) ; 5 3 1 1 1.8 2 σ[5] = 1
. ...
Retourne la distribution optimale pour tout sous-ensemble 9 5 3 1 1.67 3 σ[9] = 2
d’atomes [1, m], m ≤ B, complexité O(pB) 10 5 3 2 1.6 σ[10] = 3
. Géométriquement . Exemple
p = 5 rectangles R1 , . . . , R5
Aires s1 = 0.36, s2 = 0.25, s3 = s4 = s5 = 0.13