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

8INF856 Algorithmes parallèles. Le langage parallèle Cilk Trois nouveaux mots clés: 1.spawn 2.sync 3.Parallel Si on enlève ces mots clés, on obtient un.

Présentations similaires


Présentation au sujet: "8INF856 Algorithmes parallèles. Le langage parallèle Cilk Trois nouveaux mots clés: 1.spawn 2.sync 3.Parallel Si on enlève ces mots clés, on obtient un."— Transcription de la présentation:

1 8INF856 Algorithmes parallèles

2 Le langage parallèle Cilk Trois nouveaux mots clés: 1.spawn 2.sync 3.Parallel Si on enlève ces mots clés, on obtient un programme C standard.

3 Exemple: Fibonacci P-Fib(n) if n<=1 return n else x = spawn P-Fib(n-1) y = P-Fib(n-2) sync return x+y

4 Exemple: Fibonacci

5 Mesures de performance Travail (work): temps séquentiel Durée (span): temps parallèle T P : temps dexécution sur p processeurs T 1 : travail T :durée

6 Mesures de performance Loi du travail: T P T 1 /P Loi de la durée: T P T Accélération: T 1 /T p P Parallélisme: T 1 /T T 1 /T p

7 Analyse de P-Fib T 1 (n) = θ( ϕ n ) où ϕ est le nombre dor T (n) = max(T (n-1), T (n-2)) + θ(1) = T (n-1) + θ(1) = θ(n) Parallélisme: θ( ϕ n /n )

8 Boucles parallèles Exemple: On veut multiplier une matrice M par un vecteur x Mat-Vec(M,x,n) parallèle for i=1 to n do y[i]=0 parallèle for i=1 to n do for j=1 to n do y[i] = y[i] + M[i,j]*x[j] return y

9 Implémentation des boucles parallèles On implémente les boucles parallèles à laide de linstruction spawn: Mat-Vec-Main-Loop(M,x,y,n,d,f) if (d==f) for j=1 to n do y[d] = y[d] + M[d,j]*x[j] else m = (d+f)/2 spawn Mat-Vec-Main-Loop(M,x,y,n,d,m) Mat-Vec-Main-Loop(M,x,y,n,m+1,f) sync

10 Implémentation des boucles parallèles

11 Analyse de Mat-Vec(A,x,n) Travail: θ(n 2 ) Durée: Total: θ(n) Parallélisme: θ(n 2 /n) = θ(n) Θ(lg n) Θ(lg n) + θ(n) Θ(1) Mat-Vec(M,x,n) parallèle for i=1 to n do y[i]=0 parallèle for i=1 to n do for j=1 to n do y[i] = y[i] + M[i,j]*x[j] return y

12 Multiplication matricielle (1) P-Square-Matrix-Multiply(A,B,n) parallèle for i=1 to n do parallèle for j=1 to n do C[i,j]=0 for k=1 to n do C[i,j] = C[i,j] + A[i,k]*B[k,j] return C

13 Multiplication matricielle (2)

14 Algorithme de Strassen


Télécharger ppt "8INF856 Algorithmes parallèles. Le langage parallèle Cilk Trois nouveaux mots clés: 1.spawn 2.sync 3.Parallel Si on enlève ces mots clés, on obtient un."

Présentations similaires


Annonces Google