Documente Academic
Documente Profesional
Documente Cultură
Mitică Craus
1/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
Cuprins
Comprimarea (Reducerea)
Algoritm recursiv de comprimare
Algoritm paralel de comprimare
Corectitudinea şi complexitatea
Reducerea numărului unităţilor de procesare
Comentarii
Calculul Prefixelor (Scan)
Algoritmul de calcul al prefixelor ı̂n cazul ı̂n care operatia ⊕ admite
element simetric
Algoritmul de calcul al prefixelor ı̂n cazul ı̂n care operatia ⊕ nu admite
element simetric
Corectitudinea şi complexitatea
Comentarii
Scurtcircuitarea (dublarea)
Algoritm paralel de scurtcircuitare
Complexitatea
Aplicaţii ale scurtcircuitării: Calcul ranguri
Comentarii
2/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
Comprimarea (Reducerea)
3/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
• Notat, ii:
• A[0..n − 1] este un tablou de dimensiune n = 2m .
• Prin (A, k, k + l − 1) se notează segmentul din tabloul A care ı̂ncepe pe poziţia k şi se
termină pe poziţia k + l − 1
• Premise:
• Datele de intrare sunt init, ial memorate ı̂n tabloul A[0..n − 1].
• Init, ial, k = 0 si l = n.
Comprim Recursiv(A, k, k + l − 1)
1 if l = 1
2 then return A[k]
3 else return Comprim Recursiv(A, k, k + l/2 − 1) ⊕ Comprim Recursiv(A, k + l/2, k + l − 1).
4/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
• Notat, ii:
• A[0..2n − 1] este un tablou de dimensiune 2n = 2m+1 .
• Premise:
• Datele de intrare sunt memorate ı̂n tabloul A[0..2n − 1], ı̂n locat, iile
A[n], A[n + 1], . . . , A[2n − 1].
Comprim Paralel(A, ⊕)
1 for k ← m − 1 down to 0
2 do for all j : 2k ≤ j ≤ 2k+1 − 1
3 do in parallel
4 A[j] ← A[2j] ⊕ A[2j + 1];
5/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
6/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
Teorema (1)
La terminarea execut, iei algoritmului A[1] = a0 ⊕ a1 ⊕ . . . an−1 .
Teorema (2)
Complexitatea timp a algoritmului de comprimare (implementat pe o masina
CREW-PRAM sau pe o ahitectura VLSI de tip arbore binar) este O(log n).
Demonstraţie.
Adâncimea arborelui de calcul este log n.
Teorema (3)
Numarul unităt, ilor de procesare este p ≥ d n2 e
Demonstraţie.
In prima iteraţie sunt active d n2 e unităt, ilor de procesare. Apoi numărul lor scade pâna la 1.
7/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
8/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
Comentarii
9/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
10/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
11/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
12/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
13/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
Teorema (4)
La terminarea execut, iei algoritmului,
B[n] = a0 , B[n + 1] = a0 ⊕ a1 , . . . , B[2n − 1] = a0 ⊕ a1 ⊕ · · · ⊕ an−1 .
Teorema (5)
Complexitatea timp a algoritmului paralel de calcul al prefixelor (implementat pe
o masina CREW-PRAM sau pe o ahitectura VLSI de tip arbore binar) este
O(log n).
Demonstraţie.
Adâncimea arborelui de calcul este log n.
Teorema (6)
Numarul unităt, ilor de procesare este d logn n e.
Demonstraţie.
Necesarul de unităt, ide procesare este acelas, i cu cel de la comprimare .
14/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
Comentarii
15/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
Scurtcircuitarea (dublarea)
16/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
17/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
Complexitatea
Teorema (7)
Complexitatea timp a algoritmului paralel de scurtcircuitare, implementat pe o masina
CREW-PRAM, este O(log n).
18/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
19/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
20/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
21/ 22
Cuprins Comprimarea (Reducerea) Calculul Prefixelor (Scan) Scurtcircuitarea (dublarea)
Comentarii
22/ 22