Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Somme prefisse Lezione n°2.

Slides:



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

Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 31/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 22/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
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 27/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 17/04/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.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Quinta giornata Risolvere efficientemente un problema in P: ancora sulla sequenza di Fibonacci.
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.2014/2015 Prof.ssa Rossella Petreschi Lezione n°10.
Algoritmi Avanzati a.a. 2011/12 Lezione del 02/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Algoritmi Avanzati a.a.2012/2013 Prof.ssa Rossella Petreschi Albero Ricoprente 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.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi L’ausilio delle occorrenze Circuiti di ordinamento Lezione n°5.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 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
Progettare algoritmi veloci usando strutture dati efficienti
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Progettare algoritmi veloci usando strutture dati efficienti
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
Lezione n°9 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.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
La gestione degli insiemi disgiunti
Algoritmi Avanzati a.a.2011/2012 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 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
ATOMICITÀ Il tipo di atomicità di un programma PL/SQL è stabilito dall’ambiente chiamante oppure dal programma Gestione atomicità: COMMIT SAVEPOINT nome_punto.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
ABBINAMENTO Lezione n°13
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Progettare algoritmi veloci usando strutture dati efficienti
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Automi e stringhe Lezione n°24 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
HeapSort Stesso approccio incrementale del selectionSort Tipo di dato
Transcript della presentazione:

Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Somme prefisse Lezione n°2

Somma su albero binario (1) Con n foglie e 2n-1 processori Input alle foglie output alla radice Numerazione dalla radice alle foglie Somma(x) begin for i = n to 2n-1 pardo P i :a i = read() /* input alle foglie */ for i = log n -1 to 0 do for j = 2 i to 2 i+1 -1 pardo P j : a j = a 2j + a 2j+1 return a 1 end Tempo parallelo logaritmico X 1 +…+x 4 X 1 +x 2 X 3 +x 4 X 5 +…+x 8 X 5 +x 6 X 7 +x 8 X 1 +…+x 8 x1x1 x2x2 x2x2 x3x3 x5x5 x6x6 x7x7 x8x8 P2P2 P1P1 P4P4 P8P8 P5P5 P6P6 P7P7 P3P3 P 15

X 1 +…+x 4 X 1 +x 2 X 3 +x 4 X 5 +…+x 8 X 5 +x 6 X 7 +x 8 X 1 +…+x 8 x1x1 x2x2 x2x2 x3x3 x5x5 x6x6 x7x7 x8x8 P 13 P 15 P9P9 P1P1 P 10 P 11 P 12 P 14 P8P8 Somma su albero binario (2) Con n foglie e 2n-1 processori Input alle foglie output alla radice Numerazione dalle foglie alla radice Somma(x) begin for i = 1 to n pardo P i :a i = read() /* input alle foglie */ for i = log n -1 to 0 do for j = 2 i to 2 i+1 -1 pardo P 2n-j : a 2n-j = a 2n-2j + a 2n-(2j+1) return a 2n-1 end Tempo parallelo logaritmico

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)

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)

Somme prefisse su mesh Ogni processore ha il valore da sommare in x i,j begin for i = 0 to R-1 pardo for j = 1 to C-1 do P i,j : x i,j = x i,j + x i,j-1 P 0,C-1 : su 0,C-1 = 0 for i = 1 to R-1 do P i,C-1 : su i,C-1 = x i-1,C-1 + su i-1,C-1 for i = 1 to R-1 pardo for j = C-2 downto 0 do P i,j :su i,j = su i,j+1 for i = 1 to R-1 pardo for j = 0 to C-1 pardo P i,j :x i,j = x i,j + su i,j end Tempo parallelo R+C

Somme prefisse su albero binario Le n foglie hanno già il valore da sommare nella variabile x i begin for i = log n -1 downto 0 do for j = 2 i to 2 i+1 -1 pardo P j : x j = x 2j + x 2j+1 P 1 :sp 1 = 0 for i = 0 to log n -1 do for j = 2 i to 2 i+1 -1 pardo P j : sp 2j = sp j sp 2j+1 = sp j + x 2j for i = n to 2n-1 pardo P i :x i = x i + sp i end Tempo parallelo logaritmico X 1 +…+x 4 X 1 +x 2 X 3 +x 4 X 5 +…+x 8 X 5 +x 6 X 7 +x 8 X 1 +…+x 8 x1x1 x2x2 x2x2 x3x3 x5x5 x6x6 x7x7 x8x8 P2P2 P1P1 P4P4 P8P8 P5P5 P6P6 P7P7 P3P3 P 15 X 1 +…+x 4 X 1 +x 2 X 3 +x 4 X 5 +…+x 8 X 5 +x 6 X 7 +x 8 X 1 +…+x 8 x1x1 x2x2 x3x3 x4x4 x5x5 x6x6 x7x7 x8x8 sp = X 1 +…+x 4 sp = 0 x1x1 X 1 +x 2 sp = X 1 +…+x 6 sp = X 1 +…+x 7 sp = 0

Concorrenza in lettura e scrittura PRAM – EREW: Exclusive Read, Exclusive Write; – CREW: Concurrent Read, Exclusive Write; – ERCW: Exclusive Read, Concurrent Write; – CRCW: Concurrent Read, Concurrent Write; Memoria P0P0 P1P1 P2P2 P n-1

Scrittura Concorrente Nei modelli a scrittura concorrente, quando più processori richiedono di scrivere in una stessa locazione di memoria condivisa, viene consentita la scrittura ad un solo processore in accordo con uno dei seguenti criteri di scelta: – stabilita una scala di priorità tra i processori, si permette la scrittura solo al processore nella prima posizione della scala (CRCW prioritaria); – supposto che tutti i processori vogliano scrivere lo stesso valore, consentire la scrittura ad uno qualunque dei processori (CRCW arbitraria). Esistono in letteratura altri criteri, anche se meno usati, che permettono ad un fissato processore di scrivere nella cella di memoria il valore di una funzione di tutti i dati (ad esempio il massimo, lo xor, la somma).

Esempio di Algoritmo su P-RAM di tipo CREW Si adoperano n processori Assumiamo A[ i ] tutti distinti Cerca(A, n, x) begin indice = -1 for i = 0 to n-1 pardo P i :if A[ i ] = x then indice = i /* lettura concorrente di x */ return indice end Tempo parallelo costante Se A può contenere elementi ripetuti allora più processori possono scrivere concorrentemente la variabile indice: il modello necessario in tal caso è la P-RAM CRCW con scrittura concorrente basata su priorità dei processori (es viene scritto il valore dato dal processore di indice massimo tra quelli che tentano di scrivere).