Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3.

Slides:



Advertisements
Presentazioni simili
Programmazione dinamica: problema della sottosequenza più lunga
Advertisements

Gestione della memoria centrale
Algoritmi e Programmazione
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Introduzione al calcolo parallelo SISTEMI INFORMATIVI AZIENDALI Pierpaolo Guerra Anno accademico 2009/2010.
Iterazione enumerativa (for)
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 29/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
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
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 12/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 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi e strutture Dati - Lezione 7
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e strutture dati
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Introduzione1 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo: procedura suddivisa.
Introduzione alla programmazione ll
07/04/2003Algoritmi Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure.
Elementi di Informatica di base
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Strutture dati per insiemi disgiunti
Radix-Sort(A,d) // A[i] = cd...c2c1
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 08/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Cammini minimi da un sorgente
Programmazione Strutturata
Algebra di Boole.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 07/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Algoritmi e strutture Dati - Lezione 7 1 Algoritmi di ordinamento ottimali L’algoritmo Merge-Sort ha complessità O(n log(n))  Algoritmo di ordinamento.
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Informatica e Informatica di Base
Complessità Computazionale
Informatica 3 V anno.
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
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.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/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.2012/2013 Prof.ssa Rossella Petreschi Albero Ricoprente Lezione n°9.
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
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 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.2012/2013 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.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.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Transcript della presentazione:

Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3

2 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. AA

3 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 AA

Elemento combinatorio Def: Un elemento combinatorio è un qualunque elemento di circuito che abbia un numero costante di input e output e che esegua una funzione ben precisa. Esempi: Porte logiche Comparatore ecc… Più elementi combinatori possono essere collegati tra di loro formando una rete combinatoria dove l'output di un elemento può essere l'input di uno o più altri elementi. or not and comp x y min{x, y} max{x, y} AA

Rete combinatoria Una rete combinatoria C può essere vista come un grafo diretto aciclico G C avente un nodo per ciascun elemento combinatorio c e un arco diretto (c',c") se l’output di c' è input di c". La dimensione di una rete combinatoria è il numero di nodi del grafo e la profondità è il diametro del grafo. Il fan-in di un elemento c è il grado entrante del nodo c in G C e corrisponde al numero di input dell’elemento. Il fan-out di un elemento c è il grado uscente del nodo c in G C. È da notare che non necessariamente il numero di output di un elemento combinatorio è uguale al suo fan-out, infatti un elemento combinatorio con un solo filo di output può “servire” un numero qualunque di altri elementi. 5

Teorema di Brent Teorema (CREW): ogni algoritmo che lavora su una rete combinatoria di profondità d e dimensione n che sia a fan-in limitato, può essere simulato da un algoritmo che lavora su una PRAM CREW con p processori in O(n/p+d) tempo. Teorema (EREW): ogni algoritmo che lavora su una rete combinatoria di profondità d e dimensione n che sia a fan-in e fan-out limitato, può essere simulato da un algoritmo che lavora su una PRAM EREW con p processori in O(n/p+d) tempo. AA

Teorema di Brent - Esempio Profondità: d = 5 Dimensione: n = 22 Processori: p = 3 7

AA Dimostrazione del teorema di Brent Modelli di calcolo: - PRAM-EW con p processori p 0, p 1, …, p p-1. - Rete combinatoria C di profondità d e dimensione n = ∑n i, i=1..d, con n i numero di elementi al livello i. L’input del circuito combinatorio si considera disponibile nella memoria condivisa. Il fan-in limitato evita che la memoria condivisa non sia sufficiente a memorizzare i risultati intermedi del calcolo. Idea della dimostrazione: Ogni processore simula un componente del primo livello della rete e fornisce l’output che può essere immagazzinato nella memoria condivisa. Si ripete l’operazione per un numero di volte pari alla profondità del circuito utilizzando l’output di ogni livello come input del livello successivo. Nel caso in cui p sia minore del massimo numero di elementi combinatori presenti in uno stesso livello, si dovrà effettuare un numero di passi seriali proporzionale al rapporto tra il numero di elementi del livello i e p. 8

AA Modelli CREW ed EREW nel Teorema di Brent La complessità tiene conto della profondità del circuito e dei passi seriali necessari a simulare un livello. T p = ∑ n i /p ≤ ∑ (n i /p +1) = n / p + d con i=1..d Abbiamo detto che il processore che simula l’elemento combinatorio fornisce l’output che può essere immagazzinato nella memoria condivisa. Se più processori richiedono in input quello stesso valore si deve accettare che la P-RAM sia a lettura concorrente. Se si accetta l’ipotesi che anche il il fan-out sia limitato, si può considerare che in tempo costante l’output del circuito combinatorio sia direttamente copiato nell’input dei circuiti che lo richiedono. Questa limitazione permetterebbe la simulazione su una P-RAM a lettura esclusiva. 9

AA Modello Work and Depth Il modello di computazione WD è caratterizzato: dal numero totale di operazioni elementari svolte durante la computazione (Work); le operazioni si possono pensare in forma concorrente e/o esclusiva; dalla catena più lunga di dipendenze sequenziali fra le operazioni nella computazione (Depth). E’ da notare l’affinità fra i concetti Work e Depth nel modello WD e dimensione e profondità in una rete combinatoria

11 WD vs PRAM Un modello di computazione parallela si può “leggere” in termini di sequenza di intervalli paralleli unitari all’interno dei quali debbono essere eseguite concorrentemente sequenze di istruzioni. La differenza fra il modello PRAM e quello WD sta nel numero di istruzioni da eseguire: - costante (uguale a p) nella PRAM; - variabile (massimo numero possibile) nel WD. AA

12 Equivalenza fra WD e PRAM Sia A un algoritmo nel modello WD richiedente x(n) operazioni elementari e d(n) tempo (profondità). A può essere implementato su una PRAM con p(n) processori in tempo O(x/p + d) con le stesse convenzioni di concorrenza in scrittura e lettura adoperate nel modello WD AA

Trasportabilità fra P-RAM con diverso numero di processori Teorema (p' < p): ogni algoritmo A che lavora in tempo parallelo O(t) su una PRAM con p processori può essere simulato da un algoritmo A' che lavora su una PRAM con p' processori (p' < p) in tempo O(t p / p'). Dimostrazione: durante ognuno dei t passi dell’esecuzione di A, i p processori lavorano parallelamente in tempo O(1). Durante ogni passo della esecuzione di A', ciascuno dei p'<p processori eseguirà un blocco seriale di p/p' operazioni in tempo O(p/p'). Pertanto il tempo parallelo relativo alla esecuzione di A' sarà O(tp/p'). Il costo dei due algoritmi A e A' rimane pari a O(tp). 13

AA Numero di processori limitato (1) begin for i = 1 to  log n  do for j = 0 to n/2 i -1 pardo P j : A[ j ] = A[ j ] + A[ j+n/2 i ] return A[ 0 ] end Vogliamo sommare n numeri, con la tecnica della prima metà, avendo a disposizione un numero fissato a priori di p processori (p < n). Ricordiamo come si lavora con n processori P 1 P 2 P 3 P 4

AA Numero di processori limitato (2) Vediamo cosa cambia con p <n processori begin for i = 1 to  log n  do for s = 0 to  (n/2 i ) / p  -1 do for j = 0 to min(n/2 i, p) -1 pardo if (j+s*p < n/2 i ) then P j : A[ j+s*p ] = A[ j+s*p ] + A[ j+s*p +n/2 i ] return A[ 0 ] end i=1 i=2 i=3 s=0 s=1 s=0 p = 2 P 1 P 2

16 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 l’algoritmo A’ che computa C sul modello M’ è ottenibile da A tramite l’applicazione 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(logn) per il broadcast si può trasportare l’algoritmo su una PRAM ER. Vediamo come affrontare la trasportabilità della scrittura concorrente da PRAM CW a PRAM EW. AA

17 Simulazione della scrittura concorrente: stessa informazione Sia dato un algoritmo per PRAM CW con scrittura concorrente di valori identici. L’operazione 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 si suppone effettuato a livello hardware AA

18 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 dell’indice del processore che vuole scrivere). In entrambi i casi la simulazione richiede tempo parallelo logaritmico. AA