La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 31/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.

Presentazioni simili


Presentazione sul tema: "Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 31/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI."— Transcript della presentazione:

1 Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 31/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI

2 Circuito di fusione Il circuito di fusione fonde due sequenze ordinate costruite sullo stesso alfabeto sfruttando il fatto che, date due sequenze ordinate entrambe crescenti (o decrescenti) x e y, la sequenza che si ottiene concatenando x con z=y rovesciata è bitonica (linversione della stringa y si realizza semplicemente variando le connessioni). La profondità del circuito è logaritmica e il numero di comparatori ad ogni passo è n/2. Algoritmi Paralleli e Distribuiti a.a. 2008/

3 3 Circuito di ordinamento In figura è riportato un circuito di ordinamento che realizza lordinamento connettendo iterativamente diversi circuiti di fusione (la base di questa costruzione sta nel fatto che ogni sequenza di due elementi è bitonica). Poiché concateniamo un numero logaritmico di circuiti di fusione, otteniamo una profondità del circuito O(log 2 n)

4 Algoritmi Paralleli e Distribuiti a.a. 2008/09 4 Applicando il teorema di Brent Il circuito di ordinamento, O, è un circuito combinatorico di profondità d = O(log 2 n), di dimensione pari al numero di comparatori c = O(n log 2 n), fan in e fan out limitati. Per il Teorema di Brent, lalgoritmo di ordinamento che lavora su O può essere simulato da una algoritmo che lavora su una PRAM EREW con N processori in tempo O(c / p + d), ovvero O((n log 2 n) / p + log 2 n). Quando p = O(n) si ha che la complessità temporale dell'ordinamento su una PRAM EREW è O(log 2 n) e il costo O(n log 2 n).

5 Algoritmi Paralleli e Distribuiti a.a. 2008/09 5 Algoritmo pari/dispari Lidea base è quella di far lavorare prima tutti i processori di indice pari e poi quelli di indice dispari per evitare letture e scritture concorrenti nei confronti. for s = 1 to n/2 do for i = 0 to i < n-1 step 2 pardo P i : if x[i] > x[i+1] then swap(x[i], x[i+1]) for i = 1 to i < n-1 step 2 pardo P i : if x[i] > x[i+1] then swap(x[i], x[i+1]) Richiede tempo O(n) su una PRAM EREW con O(n) processori. Il costo complessivo è O(n 2 ) s=1 pari s=1 dispari s=2 pari s=2 dispari s=3 pari s=3 dispari Fine

6 Algoritmi Paralleli e Distribuiti a.a. 2008/09 6 Algoritmo pari/dispari con p < n processori Ogni processore P i gestisce un blocco S i composto di b = n/p elementi. for i = 0 to p-1 pardo P i :ordina S i in modo sequenziale for s = 0 to p/2 do for i = 0 to i < p-1 step 2 pardo P i :S i ' = Merge(S i, S i+1 ) S i = S i ' [0, b-1] S i+1 = S i ' [b, 2b-1] for i = 1 to i < p-1 step 2 pardo P i :S i ' = Merge(S i, S i+1 ) S i = S i ' [0, b-1] S i+1 = S i ' [b, 2b-1] I tempo richiesto è T p = O(n/p log (n/p)) + p/2 O(n/p). Quando abbiamo p = O(log n) il tempo T p diventa O(n): in tal caso il costo totale è O(n log n).

7 Algoritmi Paralleli e Distribuiti a.a. 2008/09 7 Ordinamento su PRAM CRCW Sfruttiamo la scrittura concorrente per ottenere un semplice algoritmo di ordinamento. Assumiamo una PRAM CRCW con scrittura concorrente della somma dei valori scritti. for i = 0 to n-1 pardo for j = 0 to n-1 pardo P i,j :if(x[ i ] > x[ j ]) or (x[ i ] = x[ j ] and i > j) then c[ i ] = 1 for i = 0 to n-1 pardo P i,1 :x[ c[ i ] ] = x[ i ] Con n 2 processori il tempo richiesto è O(1), Il costo totale è quindi O(n 2 ). x fin x iniz C Risultati dei confronti effettuati i j FVVFV 1 FFVFF 2 FFFFF 3 VVVFV 4 FVVFF


Scaricare ppt "Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 31/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI."

Presentazioni simili


Annunci Google