Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi

Slides:



Advertisements
Presentazioni simili
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Advertisements

Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 17/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 20/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 06/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 19/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 07/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Simulazione di lettura e scrittura concorrente Tecnica dell’accelerated cascading Lezione.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi ELEZIONE DEL LEADER Lezione n°8.
Huffman Canonico: approfondimento. Come abbiamo visto, Huffman canonico ci permette di ottenere una decompressione più veloce e con un uso più efficiente.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti 2 Lezione n°10.
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi Lezione n°10.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Somme prefisse Lezione n°2.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2012/2013 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Dal problema al processo risolutivo
Algoritmi Avanzati Prof.ssa Rossella Petreschi
LE ARCHITETTURE NON VON NEUMANN
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Lezione n°19 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Dal problema al processo risolutivo
10. Programmazione Ricorsiva Ing. Simona Colucci
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Sulla complessità Lezione n°2
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi per il flusso nelle reti
Lezione n°6 Prof.ssa Rossella Petreschi
Esercitazione su Instruction Level Parallelism
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Esercizio Dato un albero binario, definiamo altezza minimale di un nodo v la minima distanza di v da una delle foglie del suo sottoalbero, definiamo invece.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Lezione n°7 Splay-Trees e Heaps Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Analisi ammortizzata Lezione n°2
Transcript della presentazione:

Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi Lezione n°1 Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi 1

Il nostro obiettivo Vogliamo analizzare come si deve progettare un algoritmo quando, per velocizzare la computazione, si vogliano usare contemporaneamente più entità addette al calcolo.

Computazione parallela Cosa si vuole? velocizzare il tempo di esecuzione globale di un singolo “task”; aumentare il numero totale dei task eseguibili in un fissato intervallo di tempo. Come si ottiene questo risultato? incrementando il parallelismo delle macchine. Come si utilizza il parallelismo delle macchine? traducendo un programma sequenziale esistente; progettando un nuovo algoritmo basato su paradigmi e tecniche capaci di concettualizzare il parallelismo. La progettazione degli algoritmi paralleli dipende dal modello di calcolo parallelo a disposizione

Classificazione Sistemi sincroni: Sistemi asincroni: PRAM (Parallel Random Access Machine):con memoria condivisa INM (Interconnection Networks Machine):con memoria locale Sia PRAM che INM sono macchine SIMD(Single Instruction, Multiple Data), ovvero macchine in cui ogni processore esegue la stessa istruzione su dati differenti. La tradizionale macchina sequenziale di Von Neumann è SISD( Single Instruction, Single Data): ad ogni passo, l'unica unità di controllo esegue una sola istruzione che opera su di un singolo dato. Sistemi asincroni: Sistemi Concorrenti:con memoria condivisa Sistemi Distribuiti: con memoria locale Entrambi questi sistemi sono di tipo MIMD (Multiple Instructions, Multiple Data), ovvero ogni processore ha un suo insieme di dati ed un suo insieme di istruzioni per elaborarli

Parallel Random Access Machine (Fortune-Wyllie 1978) Il modello di computazione PRAM impiega p processori sincroni tutti aventi tempo di accesso unitario ad una memoria condivisa. Ogni processore ha una propria memoria locale e tutti i processori lavorano in modo sincrono. In ogni intervallo temporale unitario, un processore può: leggere nella memoria condivisa (ovvero copiare il contenuto di una cella della memoria condivisa in uno dei registri della propria memoria locale); scrivere nella memoria condivisa (ovvero copiare il contenuto di uno dei registri della propria memoria locale in una cella della memoria condivisa); compiere una qualche computazione nella propria memoria locale. 5

E’ da notare che… PRAM ignora aspetti realistici quali: Sincronizzazione; Affidabilità; Velocità di comunicazione; Passaggio dei messaggi; Località dei dati.

Reti di interconnessione (INM) La comunicazione tra processori avviene passando attraverso opportuni canali direttamente dalla memoria locale di un processore a quella di uno o più processori adiacenti. Esempi di reti di interconnessione: Vettore Matrice (mesh) Albero binario completo Ipercubo etc 7

Si adoperano n processori Tecnica della prima metà Somma su P-RAM Si adoperano n processori Per semplicità assumiamo n potenza di 2 Somma(A) begin for i = 1 to log n do for j = 0 to n/2i -1 pardo Pj: A[ j ] = A[ j ] + A[ j+n/2i ] return A[ 0 ] end Tempo parallelo logaritmico Tecnica della prima metà 4 2 7 4 1 6 3 8 5 8 10 12 15 20 35 8

Si adoperano RxC processori Somma su mesh Si adoperano RxC processori Ciascun processore ha un proprio valore nella variabile a Somma_Mesh() begin for i = 1 to R-1 do for j = 0 to C-1 pardo Pi,j: ai,j = ai,j + ai-1,j for j = 1 to C-1 do PR-1,j: aR-1,j = aR-1,j + aR-1,j-1 return aR-1, C-1 end Tempo parallelo R+C S a 9

Speed-up / efficienza Lo 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 = Ts / Tp. 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 Np Processori può essere al più Np 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 Np, l'algoritmo seriale utilizzato non è ottimo e se ne può trovare uno migliore eseguendo serialmente i passi dell'algoritmo parallelo utilizzato. L'efficienza (Eff) è il rapporto tra la complessità nel caso pessimo dell'algoritmo seriale ottimo e il costo dell'algoritmo parallelo. Eff = Ts / Cp 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. 10