Parametri de performan
TP(n) = Timpul de executie paralela cu p procesoare a unui algoritm corespunzator unei probleme de dimensiune n Ts (n)= Timpul de executie sequentiala L = Factorul de ncarcare (L) al unei probleme = n/p S(n) = Accelerarea = Ts(n)/Tp(n) pentru cel mai bun Ts(n)) E(n) = Eficienta = S(n)/p sau E(n) = Ts(n)/(p Tp(n) ) C(n) = Costul = pTP(n)
Pseudocd
proc adunare1 n, d, a, s, sr /* n = 2m */ s a[id] masca 0 for i = 0 to m-1 if ((id AND masca) = 0) if ( (id and 2i) = 0 ) then sursa = id XOR 2i primeste(sr, sursa) s s + sr else destinatie = id XOR 2i trimite(s, destinatie) masca = masca XOR 2i end
Exemplul 1 : Plasa
Exemplul 2 : Hipercubul
Se are in vedere constructia recursiva
Adunarea a 16 numere
Simularea primului pas de comunicare
a 16 procesoare prin 4 procesoare
Subpasul 1
Subpasul 2
Subpasul 3
Subpasul 4
Subpasul 1
Subpasul 2
Subpasul 3
Subpasul 4
Subpasul 1
Subpasul 2
Rezultatul final
Complexitatea
Primii log p pasi necesita ((n/p) log p) timp paralel Ultimii log n - log p pasi necesita (n/p) timp Costul C = (n log p) (costul nu este optimal)
Pseudocd
proc adunare2 n, p, d, a, s, sp, sr /* n = 2m, p = 2d */ for j = 0 to 2m-d-1 sp[j] a[j2d+id] masca 0 for i = 0 to d-1 for j = 0 to 2m-d-1 if ((id AND masca) = 0) if ( (id and 2i) = 0 ) then sursa = id XOR 2i primeste(sr, sursa) sp[j] sp[j] + sr else destinatie = id XOR 2i trimite(sp[j], destinatie) masca = masca XOR 2i s0 if (id = 0) for j = 0 to 2m-d -1 s s + sp[j]; end
Solutie optimala
Complexitatea
Prima faza necesita (n/p) timp paralel Faza a doua necesita (logp) timp paralel Costul C = (n+plogp) Optimal cand n= (plogp)
Pseudocd
proc adunare3 n, p, d, a, s, sr /* n = 2m, p = 2d */ s0 for j = 0 to 2m-d -1 s s + a[id 2m-d +j]; masca 0 for i = 0 to d-1 if ((id AND masca) = 0) if ( (id and 2i) = 0 ) then sursa = id XOR 2i primeste(sr, sursa) s s + sr else destinatie = id XOR 2i trimite(s, destinatie) masca = masca XOR 2i end
Bibliografie
1.
2.
3.
M. Craus, (2010), Algoritmi Paraleli i Distribuii, note de curs format electronic V. Kumar, A. Grama A. Gupta &G Karypis, (2003), Introduction to Parallel Computing: Design andAnalysis of Algorithms, Addison Wesley Murray Cole (Edinburgh University) Note de curs