La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

2 Algoritmi Paralleli e Distribuiti a.a. 2008/09 2 Broadcast con eco in una qualsiasi rete a connessione fissa Per risolvere il problema della terminazione si usa leco Servono connessioni bidirezionali begin P eco :N eco = { q : q è un vicino di P eco } send messaggio ad ogni q in N eco cont eco = 0 while cont eco < | N eco | receive messaggio da un vicino incrementa cont eco termina P i eco :receive messaggio da un vicino p che chiamo padre N i = { q p : q è un vicino di P i } send messaggio ad ogni q in N i cont i = 0 while cont i < | N i | receive messaggio da un vicino incrementa cont i send messaggio al padre p end In una rete di n nodi, vengono inviati O(m) messaggi in O(d) passi

3 Algoritmi Paralleli e Distribuiti a.a. 2008/09 3 Esempio broadcast con eco 1 0/4 0/2 0/4 1/2 2/2 1/4 Processore non raggiunto dal Broadcast Processore raggiunto dal Broadcast (allinterno sono riportati i valori di cont i e di |N i |) Messaggio di Broadcast Processore che ha ricevuto conferma da tutti i vicini (incluso leco) Messaggio di eco Passo 1: Inizializzazione Passo 2 Ogni processore manda solo due messaggi: uno di broadcast ai suoi vicini dopo averlo ricevuto dal padre (prime istruzioni del processore P i ) e uno di eco dopo aver ricevuto messaggi da tutti i suoi vicini (al termine del ciclo while). La distinzione tra messaggi di broadcast e di eco è soltanto logica, di fatto i messaggi sono identici. Nellesempio, al passo 2, abbiamo due tipi di processori che ricevono messaggi: quelli ancora in attesa del padre e quelli che già sono nel ciclo while. In particolare il processore P c riceve un messaggio sia da P a che da P b. Supponiamo che P a sia il padre, in quanto il messaggio da lui inviato è finito in testa alla coda. P c invierà subito un messaggio a P b, che incrementa il suo contatore, mentre invierà un messaggio a P a soltanto dopo aver ricevuto N c messaggi dai suoi vicini (incluso quello inviato da P b ). Il contatore di P d ha già raggiunto il suo valore massimo e quindi P d è pronto per mandare un eco al padre. PaPa PbPb PcPc P eco PdPd

4 Algoritmi Paralleli e Distribuiti a.a. 2008/09 4 Esempio broadcast con eco 2 4/4 2/2 2/4 4/4 0/2 1/4 2/2 1/4 2/2 1/1 2/2 Passo 4Passo 3 Passo 5Passo 6

5 Algoritmi Paralleli e Distribuiti a.a. 2008/09 5 Sistemi sincroni e asincroni Sistema sincronoSistema asincrono Un messaggio spedito da un nodo ad un suo vicino arriva sempre in tempo costante La trasmissione dei messaggi ha durata variabile L'assenza di segnale è informazione L'assenza di segnale non fornisce informazione La computazione locale ha costo zero

6 Algoritmi Paralleli e Distribuiti a.a. 2008/09 6 Complessità distribuita complessità dei messaggi (M d ): è il numero totale di messaggi spediti tra nodi vicini durante la computazione; complessità temporale (T d ): tempo speso per la comunicazione durante la computazione del caso peggiore fino a quando loutput richiesto è stato raggiunto (o il sistema va in halt) Ad esempio durante una esecuzione dellalgoritmo di Broadcast con eco vengono inviati in totale M d = 2m messaggi (2 per ogni arco). Lalgoritmo però richiede soltanto T d = O(d) passi di comunicazione (dove d è il diametro della rete). Per quanto riguarda la complessità temporale, nel modello sincrono il suo calcolo si riduce essenzialmente a contare il numero delle pulsazioni che trascorrono durante la computazione, mentre nel modello asincrono consiste nel calcolare il numero di messaggi nella più lunga catena casuale della forma ricevi un messaggio e spedisci un messaggio come conseguenza, calcolata su tutte le possibili esecuzioni dellalgoritmo e su tutte le possibili strutture del grafo G. Come sempre, queste misure sono considerate nel caso peggiore e in forma asintotica in funzione di n e m, nodi e archi di G.

7 Algoritmi Paralleli e Distribuiti a.a. 2008/09 7 Complessità parallela Tempo di esecuzione (T p ): si calcola come differenza tra il tempo in cui tutti i processori hanno terminato il loro lavoro e il tempo di inizio del primo processo. Numero di processori (N p ): viene considerato il massimo numero di processori utilizzati. Costo (C p ): di un algoritmo è dato dal prodotto del tempo di esecuzione per il numero di processori. Speed-up (Su): è una misura utile a determinare quanto un algoritmo parallelo sia veloce rispetto al migliore algoritmo seriale conosciuto per lo stesso problema. Si calcola come rapporto tra il tempo impiegato nel caso pessimo dal miglior algoritmo seriale e il tempo del nostro algoritmo parallelo. Su = T s / T p. Efficienza (Eff): è il rapporto tra la complessità nel caso pessimo dell'algoritmo seriale ottimo e il costo dell'algoritmo parallelo. Eff = T s / C p.

8 Algoritmi Paralleli e Distribuiti a.a. 2008/09 8 Speed-up / efficienza Lo speed-up è una misura utile a determinare quanto un algoritmo parallelo sia veloce rispetto al migliore algoritmo seriale conosciuto per lo stesso problema. Se si considera lo speed-up a partire da un algoritmo seriale ottimo, lo speed-up ideale è uguale al numero di processori, poiché un algoritmo che lavora su N p processori può essere al più N p volte più veloce del corrispondente algoritmo seriale. Quando si raggiunge lo speed- up ottimo si ottiene l'algoritmo parallelo ottimo (se lo era il seriale). Nel caso in cui lo speed-up sia maggiore di N p, l'algoritmo seriale utilizzato non è ottimo e se ne può trovare uno migliore eseguendo serialmente i passi dell'algoritmo parallelo utilizzato. L'efficienza deve risultare minore o uguale a 1. Se risultasse maggiore di 1 allora l'algoritmo seriale non sarebbe ottimo e sarebbe possibile trovarne uno migliore simulando l'algoritmo parallelo con l'esecuzione seriale degli stessi calcoli dell'algoritmo parallelo su di un unico processore. Bisogna ricordare che il numero N p di processori risulta vincolato da considerazioni di carattere tecnologico ed economico (costo iniziale e di manutenzione); in pratica si cerca di rendere N p indipendente dalla dimensione n del problema e comunque abbastanza piccolo. Volendo esprimere il rapporto esistente tra N p ed n, possiamo utilizzare un'equazione del tipo: N p = f(n) = n 1-x con 0 x 1

9 Algoritmi Paralleli e Distribuiti a.a. 2008/09 9 Accelerated Cascading Abbiamo visto come lalgoritmo di somma parallelo non sia ottimo perché costa O(n log n) (ovvero n processori per log n tempo), mentre il miglior algoritmo sequenziale richiede tempo O(n). La tecnica dellaccelerated cascading ci permette di ridurre il costo dellalgoritmo parallelo a O(n). La tecnica consiste nel dividere lalgoritmo in due fasi: 1° fase: si applica lalgoritmo sequenziale su k sotto-istanze del problema di piccola dimensione h in modo da ridurre la dimensione totale dello intero problema. Tempo parallelo O(h). 2° fase: si applica lalgoritmo parallelo sui k risultati del passo precedente. Tempo parallelo O(log k) Costo = O(P (h + log k))

10 Algoritmi Paralleli e Distribuiti a.a. 2008/09 10 Somma con la tecnica dellAccelerated Cascading Si adoperano P processori SommaAC(A, n) begin k = P h = n/k for i = 0 to k-1 pardo P i : b i = i * h for j = 1 to h -1 do if b i + j < n then A[ b i ] = A[ b i ] + A[ b i + j ] B[ i ] = A[ b i ] Somma(B, k)// algoritmo di somma parallela standard end Tempo parallelo O(h + log k)

11 Algoritmi Paralleli e Distribuiti a.a. 2008/09 11 Esempio di somma con la tecnica dellAccelerated Cascading n = 12 P = 4 size = P0P0 P1P1 P2P2 P3P ° fase sequenziale 2° fase parallela

12 Algoritmi Paralleli e Distribuiti a.a. 2008/09 12 Analisi dellalgoritmo SommaAC Per ottenere costo C p =O(n) e quindi Eff=1, dobbiamo scegliere O(n/log n) processori, assegnando a ciascuno O(log n) elementi da sommare sequenzialmente. La 1° fase pertanto richiede tempo paralello O(log n) per generare O(n/log n) elementi. Con O(n/log n) processori si opera con lalgoritmo di somma parallelo su gli O(n/log n) elementi, impiegando un tempo parallelo pari a: log (n/log n) = log n – log log n = O(log n) Costo totale = O(n/log n (log n + log n)) = O(n)


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

Presentazioni simili


Annunci Google