La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 17/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 17/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 17/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI

2 Algoritmi Paralleli e Distribuiti a.a. 2008/09 2 Trasportabilità degli algoritmi Dati due differenti modelli di computazione M e M, si dice che un algoritmo A progettato per la computazione C sul modello M è trasportabile sul modello M se lalgoritmo A che computa C sul modello M è ottenibile da A tramite lapplicazione di un insieme finito di regole fisse. Il broadcast su PRAM è un primo esempio di trasportabilità di un algoritmo: se su una PRAM CR tutti i processori vogliono leggere la stessa informazione, pagando un tempo O(log n) per il broadcast si può trasportare lalgoritmo su una PRAM ER. Vediamo come affrontare la trasportabilità della scrittura concorrente da PRAM CW a PRAM EW.

3 Algoritmi Paralleli e Distribuiti a.a. 2008/09 3 Simulazione della scrittura concorrente: stessa informazione Sia dato un algoritmo per PRAM CW con scrittura concorrente di valori identici. Loperazione compiuta da tutti i processori di scrivere nella stessa locazione R viene simulata su PRAM EW dal solo processore P 0, dopo aver controllato che tutti i valori a i scritti dai rispettivi P i siano uguali*. Questo controllo si effettua usando un vettore A con tutti i valori da scrivere e un vettore di booleani utilizzato per riportare le eventuali diversità nei valori di A: for j = 0 to n pardo P j : A[ i ] = a i ; B[ i ] = true for i = 1 to log n do for j = 0 to (n/2 i -1) pardo P j : if A[ j ] A[ j+ n/2 i ] or not B[ j ] or not B[ j+ n/2 i ] then B[ j ] = false P 0 :if B[ 0 ] then R = A[ 0 ] Il tempo parallelo richiesto è O(log n) * Questo controllo su PRAM CW è effettuato a livello hardware

4 Algoritmi Paralleli e Distribuiti a.a. 2008/09 4 Simulazione della scrittura concorrente: funzione dei valori La simulazione di PRAM CW con scrittura del massimo valore (o della somma o di qualsiasi altra funzione commutativa f dei valori) viene eseguita su PRAM EW semplicemente utilizzando la tecnica della metà per il computo di f su un vettore A: for j = 0 to n pardo P j : A[ i ] = a i for i = 1 to log n do for j = 0 to (n/2 i -1) pardo P j : A[ j ] = f ( A[ j ], A[ j+ n/2 i ] ) P 0 :R = A[ 0 ] Con lo stesso schema si può simulare anche la scrittura concorrente basata su priorità (ad esempio in funzione dellindice del processore che vuole scrivere). In entrambi i casi la simulazione richiede tempo parallelo logaritmico.

5 Algoritmi Paralleli e Distribuiti a.a. 2008/09 5 Simulazione della lettura concorrente (caso generale) Problema: N processori P 1, P 2, …, P n vogliono leggere il contenuto di K celle di memoria (in generale K

6 Algoritmi Paralleli e Distribuiti a.a. 2008/09 6 PASSI 1 e 2 Passo 1: for i = 0 to n-1 pardo P i :M[ i ] = (i, L j )// coppie (proc, loc) sort(M, loc); Passo 2: P 0 :iniz[ 0 ] = true; B[ 0 ] = 1 for i = 1 to n-1 pardo P i :if M[ i ].loc M[ i-1 ].loc then iniz[ i ] = true; B[ i ] = 1 else iniz[ i ] = false; B[ i ] = 0 PrefixSum(B, n) Il vettore B è utilizzato per identificare il blocco di appartenenza di ogni processore Proc Loc Proc Loc TFFTFT iniz B B

7 Algoritmi Paralleli e Distribuiti a.a. 2008/09 7 PASSO 3 Invece di eseguire K broadcast differenti (uno per blocco) si esegue un unico broadcast multiplo che tiene conto della separazione in blocchi Passo 3:// Broadcast multiplo for i = 0 to n-1 pardo P i :if iniz[ i ] then D[ i ] = contenuto di M[ i ].loc for j = 0 to log n -1 do for i = 0 to n-1 pardo P i :if iniz[ i ] and i+2 j

8 Algoritmi Paralleli e Distribuiti a.a. 2008/09 8 PASSO 4 Passo 4: for i = 0 to n-1 pardo // chi aveva richiesto li-esimo dato P i :R[ M[ i ].proc ] = D[ i ] // nel registro del proc i-esimo // si carica il dato voluto R i = R[ i ] Al termine ogni processore i avrà nel suo registro R il dato contenuto alla locazione L j inizialmente specificata. Tempo Parallelo: Passo 1: T sort Passi 2, 3: logaritmico Passo 4: costante xxxyyz D Proc Loc yxxzyx R

9 Algoritmi Paralleli e Distribuiti a.a. 2008/09 9 Simulazione della scrittura concorrente (caso generale) Problema: N processori P 1, P 2, …, P n vogliono scrivere i valori a 1, a 2, …, a n rispettivamente, in K diverse celle di memoria di una P-RAM di tipo EREW. In generale K

10 Algoritmi Paralleli e Distribuiti a.a. 2008/09 10 Passo 1: analogo Passo 2: P 0 :iniz[ 0 ] = true for i = 1 to n-1 pardo P i :if M[ i ].loc M[ i-1 ].loc then iniz[ i ] = true else iniz[ i ] = false Passo 3: for i = 0 to n-1 pardo P i :if iniz[ i ] then scrivi D[ M[ i ].proc ] in M[ i ].loc Esempio di scrittura concorrente Proc Loc xyzabc D Proc Loc TFFTFT iniz y Memoria xa xyzabc D P3P3 P0P0 P5P5

11 Algoritmi Paralleli e Distribuiti a.a. 2008/09 11 Somme prefisse Sequenziale PrefixSum(A, n) begin for i = 1 to n-1 do A[ i ] = A[ i ] + A[ i-1 ] end Tempo O(n)

12 Algoritmi Paralleli e Distribuiti a.a. 2008/09 12 Somme prefisse su P-RAM P-RAM EREW con n processori PrefixSum(A, n) begin for i = 0 to log n -1 do for j = 0 to n-1 -2 i pardo P j : A[ j+2 i ] = A[ j ] + A[ j+2 i ] end Tempo Parallelo O(log n)


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

Presentazioni simili


Annunci Google