Sunteți pe pagina 1din 14

CURS III (1)

Teorema lui Brent.


Fie A un algoritm ce necesita m operatii pe un PRAM cu un
numar nedefinit de procesoare in timp t. Atunci A poate fi rulat
pe un PRAM cu p procesoare in timp O(m/p+t).
Consecinta
Calculul maximului unui vector pe un EREW PRAM: Arbore
binar in O(log n) cu O(n) procesoare.
Cate operatii se executa in total?

Avem numai p < n procesoare. Putem rezolva problema in acelasi


timp? Conform T. Brent avem O(n/p + log n).
Alegem p = n/log n

CURS III (2)


Problema
Calculul maximului unui vector pe un CRCW PRAM in O(1)
Maximum (A,n)
(1) forall i in parallel do
(2)
m [i] true
(3) endfor
(4) forall i, k, i k, in parallel do
(5)
if A [i] < A [k] 0 then m [i] false
(6)
endif
(7) endfor
(8) forall i in parallel do
(9)
if m [i] = true then MAX A [i]
(10) endif
(11) endfor

CURS III (3)


Evaluarea timpului pe CRCW PRAM: O(1) cu O(n2 ) procesoare.
Se poate in acelasi timp si pe un CREW?
RASPUNS: NU Avem nevoie de minim O(log n)
Se poate in acelasi timp si pe un EREW?
Concluzie: Exista probleme ce se pot rezolva pe CRCW mai
repede decat pe un CREW.

CURS III (4)


Problema
Exista o valoare data intr-un vector cu toate elementele
diferite? pe un CREW PRAM in O(1)

Exista (A,n, b)
(1) ex false
(2) forall i in parallel do
(3)
if A [i] = b then ex true
(4)
endif
(5) endfor

CURS III (5)


Evaluarea timpului pe CREW PRAM: O(1) cu O(n) procesoare.
Se poate in acelasi timp si pe un EREW?
RASPUNS: NU pentru ca nu putem citi simultan b. Avem
nevoie O(n) copii ale lui b care se pot obtine in minim O(log n)
timp.
Concluzie: Exista probleme ce se pot rezolva pe CREW mai
repede decat pe un EREW.

CURS III (6)


Teorema de simulare
Orice algoritm CRCW consistent cu n procesoare poate fi simulat
de un EREW cu n procesoare cu o crestere de complexitate de
cel mult O(log n).
Demonstratie: Presupunem ca stim cum sortam un vector de
dimensiune n cu un EREW cu O(n) procesoare in timp O(log n).
Fie un pas in CRCW de scriere:
1. Daca Pi scrie xi la adresa li, atunci in EREW, Pi scrie A[i]=(li , xi)
2. EREW sorteaza A dupa prima componenta
3. Fiecare Pi citeste A[i]=(lj , xj ) si A[i-1]= (lk , xk)
4. Daca i=0 sau lj lk , Pi scrie xj la adresa lj
Analog pentru un pas de citire.

The p processors in the EREW PRAM simulate a


concurrent write of the CRCW algorithm using
an auxiliary array A of length p.
P0
P1
P2

12

43

1.When CRCW processor Pi, for i=0,1,


,p-1, desires to write a datum xi to
8
location li, each corresponding EREW
processor Pi instead writes the ordered
29 pair (li,xi) to location A[i].

P3
P4
P5

26

92

2. This writes are exclusive, since each


processor writes to a distinct memory
location.

3. Then, the array A is sorted by the first coordinate of the ordered pairs in
O(log p) time, which causes all data written to the same location to be
brought together in the output

(29,43)

(8,12)

P0

P0

(8,12)

(8,12)

P1

(29,43)

(29,43)

P1

P2

(29,43)

(29,43)

P3

(92,26)

(29,43)

(8,12)

(92,26)

P0
P1

P4

P5
Simulate
d

CRCW
global
memory

CRCW
global
memory

(8,12)

(29,43)

P2

P2

(29,43)

P3

P3

(29,43)

(92,26)

P4

P4

P5

P5

Simulate
d
sort

(8,12)

Simulating
step on an
EREW PRAM

12

43

29

26

92

4. Each EREW processor Pi now inspects A[i]=(lj,xj) and A[i-1]= (lk,xk), where j
and k are values in the range 0j,kp-1. If lj lk or i=0 then Pi writes the datum
xj to location lj in the global memory. Otherwise, the processor does nothing.

CURS III (6)

Demonstratie (continuare):
Fie un pas in CRCW de scriere:
1. Daca Pi scrie xi la adresa li, atunci in EREW, Pi scrie A[i]=(li , xi)
2. EREW sorteaza A dupa prima componenta
3. Fiecare Pi citeste A[i]=(lj , xj ) si A[i-1]= (lk , xk)
4. Daca i=0 sau lj lk , Pi scrie xj la adresa lj
Analog pentru un pas de citire.

CURS III (7)


Problema sortarii
1.Sortarea unui vector in O(log n) pe un CREW.
Interclasarea a doi vectori de numere intregi
Algoritmul lui Cole de sortare paralela
Corectitudine si complexitate
2. Translatarea pe un EREW fara cresterea complexitatii.

CURS III (8)


Interclasarea a doi vectori de numere intregi
Def. x se afla intre a si b daca a < x b.
Def. Pozitia lui x in vectorul A este data de nr. elementelor din A
strict mai mici decat x. (rank(x,A))
Def. Pozitia lui A in B este functia RankA,B : A B,
RankA,B (x)=rank(x,B).
Def. Secventa C este good sampler pentru secventa D daca pt.
orice k 1 exista cel mult 2k+1 elemente din D intre orice k+1
elemente consecutive din {-} C {+}
Ex: A=(2,3,7,8,10,14,15,17,18,21)
B=(1,4,6,9,11,12,13,16,19,20)
C=(5,10,12,17) este good sampler pentru A si B.

CURS III (9)


Interclasare_cu_ ajutorul_good_sampler (A,B,C)
1.A si B sunt partitionate in paralel astfel
1.1. A(i)= {x A| C[i-1] < x C[i]
1.2. B(i)= {x B| C[i-1] < x C[i]
2. forall i in parallel do
3.
res [i] Merge(A [i], B[i])
4. endfor
5. res res [1] res [2] res [card(C)+1]

CURS III (10)


Implementare
Se stiu valorile RankC,A, RankC,B, RankA,C, RankB,C
Linia 1.1: fiecare procesor Pi citeste rank(i,C) = r si scrie i in
A(r). O(1) cu card (A) procesoare.
Linia 1.2: Analog.
Total: O(1) cu card (A)+card(B) procesoare
Liniile 2-4: fiecare lista are cel mult 3 elemente. Deci timp O(1)
cu card(C)+1 procesoare.

CURS III (11)


Linia 5: cunoscand RankC,A, RankC,B , calculam RankC,Merge(A,B)
astfel
rank(x,Merge(A,B))=rank(x,A)+rank(x,B)
Fiecare Pi calculeaza res[i] astfel: calculeaza
rank(C[i-1], Merge(A,B)) = r
si scrie elementele lui res[i] incepand de pe pozitia r+1.
Timp O(1) cu card(C)+1 procesoare.

S-ar putea să vă placă și

  • Coduri
    Coduri
    Document249 pagini
    Coduri
    pisti1989
    Încă nu există evaluări
  • 16.1 Coduri Liniare Si Coduri Convolut Ionale
    16.1 Coduri Liniare Si Coduri Convolut Ionale
    Document13 pagini
    16.1 Coduri Liniare Si Coduri Convolut Ionale
    beculetzu
    Încă nu există evaluări
  • COD18
    COD18
    Document13 pagini
    COD18
    pisti1989
    Încă nu există evaluări
  • COD13
    COD13
    Document15 pagini
    COD13
    pisti1989
    Încă nu există evaluări
  • COD14
    COD14
    Document12 pagini
    COD14
    pisti1989
    Încă nu există evaluări
  • COD13
    COD13
    Document15 pagini
    COD13
    pisti1989
    Încă nu există evaluări
  • COD12
    COD12
    Document12 pagini
    COD12
    pisti1989
    Încă nu există evaluări
  • COD6
    COD6
    Document12 pagini
    COD6
    pisti1989
    Încă nu există evaluări
  • COD11
    COD11
    Document11 pagini
    COD11
    pisti1989
    Încă nu există evaluări
  • COD1
    COD1
    Document12 pagini
    COD1
    pisti1989
    Încă nu există evaluări
  • COD20
    COD20
    Document17 pagini
    COD20
    pisti1989
    Încă nu există evaluări
  • ADP Prezentare
    ADP Prezentare
    Document1 pagină
    ADP Prezentare
    pisti1989
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document14 pagini
    Curs 2
    pisti1989
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document6 pagini
    Curs 5
    pisti1989
    Încă nu există evaluări
  • Arbori Rosu Negru Iz
    Arbori Rosu Negru Iz
    Document55 pagini
    Arbori Rosu Negru Iz
    pisti1989
    Încă nu există evaluări