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

Slides:



Advertisements
Presentazioni simili
…da von Neumann al computer quantistico
Advertisements

…da von Neumann al computer quantistico architettura dellelaboratore.
Informatica Generale Marzia Buscemi
Gestione della memoria centrale
Tutte le componenti non facenti parte dellunità centrale, unità di I/O, memorie di massa, dispositivi come stampanti, scanner ed in generale tutte le apparecchiature.
Introduzione al calcolo parallelo SISTEMI INFORMATIVI AZIENDALI Pierpaolo Guerra Anno accademico 2009/2010.
Corso di Fondamenti di programmazione a.a.2009/2010
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 28/04/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 15/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi e strutture Dati - Lezione 7
Corso di Informatica (Programmazione)
Modelli simulativi per le Scienze Cognitive
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller.
Prof. Cerulli – Dott.ssa Gentili
I blocchi fondamentali dell’elaborazione Componenti e funzionamento del calcolatore I blocchi fondamentali dell’elaborazione.
Prof. Cerulli – Dott.ssa Gentili
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 08/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Prof. Cerulli – Dott.ssa Gentili
Unità centrale di processo
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Laboratorio Informatico
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 07/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Il problema della ricerca Algoritmi e Strutture Dati.
Circuiti di memorizzazione elementari: i Flip Flop
Reti Sequenziali Corso di Architetture degli Elaboratori Reti Sequenziali.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
…da von Neumann al computer quantistico L’archittettura dell’elaboratore.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Utilizzo della VO di theophys per il calcolo lattice QCD G. Andronico M. Serra L. Giusti S. Petrarca B. Taglienti.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
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.
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.2014/2015 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 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 Paralleli e Distribuiti a.a. 2008/09 Lezione del 27/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI

Dimostrazione del teorema di Brent Modelli di calcolo: Rete combinatoria C di profondità d e dimensione n = i=1..d n i con n i numero di elementi al livello i. PRAM-EW con p processori p 0, p 1, …, p p-1. Linput 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 loutput che può essere immagazzinato nella memoria condivisa. Si ripete loperazione per un numero di volte pari alla profondità del circuito utilizzando loutput 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. Algoritmi Paralleli e Distribuiti a.a. 2008/09 2

Modelli CREW ed EREW nel Teorema di Brent Quindi la complessità tiene conto della profondità del circuito e dei passi seriali necessari a simulare un livello. T p = i=1..d n i / p i=1..d (n i / p +1) = n / p + d Abbiamo detto che il processore che simula lelemento combinatorio fornisce loutput 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 lipotesi che anche il il fan-out sia limitato, si può considerare che in tempo costante loutput del circuito combinatorio sia direttamente copiato nellinput dei circuiti che lo richiedono. Questa limitazione permetterebbe la simulazione su una P-RAM a lettura esclusiva. Algoritmi Paralleli e Distribuiti a.a. 2008/093

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 dellesecuzione 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). Algoritmi Paralleli e Distribuiti a.a. 2008/094

Numero di processori limitato (1) con n processori 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 avendo a disposizione p processori (p<n). Abbiamo già visto la tecnica dellAccellerated Cascading per sommare con O(n/log n) processori ottenendo un costo ottimo. In questo caso p è fisso e vogliamo mantenere la tecnica della prima metà come nella somma con n processori. Algoritmi Paralleli e Distribuiti a.a. 2008/ P 1 P 2 P 3 P 4

Numero di processori limitato (2) 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 Algoritmi Paralleli e Distribuiti a.a. 2008/ i=1 i=2 i=3 s=0 s=1 s=0 p = 2 P 1 P 2

Come ordinare nel Parallelo Per questo problema non utilizzeremo il modello PRAM, ma un modello semplificato costruito appositamente. Utilizziamo il comparatore, ossia un circuito di confronto con due ingressi e due uscite il cui valore è la coppia di valori in input ordinati in modo ascendente. I circuiti formati da comparatori, se opportunamente combinati, costituiscono un'architettura in grado di ordinare n valori di input. Algoritmi Paralleli e Distribuiti a.a. 2008/097 x y min(x,y) max(x,y)

Insertion Sort Due architetture per implementare l'insertion sort (tra 8 valori in input): Algoritmi Paralleli e Distribuiti a.a. 2008/098 Questa macchina utilizza una versione seriale dell'algoritmo di complessità O(n 2 ) (indicata dalla profondità del circuito, ossia il numero di porte che vengono attraversate in tempi differenti). È possibile ottenere una complessità O(n) ottimizzando lo scheduling dei comparatori e parallelizzando l'algoritmo.

Sulla monotonicità Se un circuito di ordinamento trasforma la sequenza di input a = (a 1, a 2, …, a n ) nella sequenza di output b = (b 1, b 2, …, b n ), allora per ogni funzione monotona crescente f, il circuito trasforma la sequenza di input f(a) = (f(a 1 ), f(a 2 ), …, f(a n )) nella sequenza di output f(b)=(f(b 1 ), f(b 2 ), …, f(b n )). Tale proprietà è facilmente verificata da un singolo comparatore e per induzione la si può provare per un intero circuito di ordinamento. Algoritmi Paralleli e Distribuiti a.a. 2008/09 9 x y min(x,y) max(x,y) f(x)f(x) f(y)f(y) min(f(x), f(y))) = f(min(x,y)) max(f(x), f(y))) = f(max(x,y))

Algoritmi Paralleli e Distribuiti a.a. 2008/0910 Principio 0/1 Teorema (principio 0/1): se un circuito combinatorio di ordinamento lavora correttamente per qualunque input costruito sull'alfabeto {0,1} allora lavora correttamente per qualunque input costruito su di un qualsiasi alfabeto finito A. Dim: supponiamo per assurdo che il circuito ordini tutte le sequenze costruite sull'alfabeto {0,1} correttamente, ma che esista una sequenza di input di numeri arbitrari a = (a 1, a 2, …, a n ) contenente elementi a i e a j tali che a i < a j mentre il circuito pone a j prima di a i nella sequenza di output. Definiamo una funzione f monotona crescente come: f(x) = 0 se x a i f(x) = 1 se x > a i dal lemma precedente segue che il circuito sistema f(a j ) prima di f(a i ) nella sequenza di output quando f(a) è l'input. Ma poiché f(a j ) = 1 mentre f(a i ) = 0, neghiamo l'ipotesi giungendo ad un assurdo.

Algoritmi Paralleli e Distribuiti a.a. 2008/0911 Sequenze bitoniche Una Sequenza Bitonica è una sequenza che può essere divisa in due sottosequenze monotone, una crescente e l'altra decrescente o viceversa. Sono bitoniche le due sequenze: m(S) = (min{s 1,s n+1 }, min{s 2,s n+2 }, …, min{s n,s 2n }) M(S) = (max{s 1,s n+1 }, max{s 2,s n+2 }, …, max{s n,s 2n }) ottenute dalla sequenza bitonica S = s 1, s 2, …, s 2n Sfruttando la definizione di m(S) ed M(S) e le relative proprietà si può ottenere una definizione ricorsiva per le sequenze bitoniche che ci permette di realizzare un primo algoritmo di ordinamento che opera ricorsivamente secondo lo schema: S = S 1 = m(S) = S 2 = M(S) = S 3 = m(S 1 ) = 1 3 S 4 = M(S 1 ) = 5 4 S 5 = m(S 2 ) = 6 5 S 6 = M(S 2 ) = Complessità O(log(n)).

Algoritmi Paralleli e Distribuiti a.a. 2008/0912 Sequenze pulite Una sequenza binaria si dice pulita se è composta interamente da 0 o da 1. Se S è bitonica almeno una delle due sottosequenze bitoniche m(S) e M(S) è pulita (diretta conseguenza del fatto che la cardinalità di {0,1} è due). In figura è presentato un circuito di ordinamento, di profondità logaritmica, per sequenze 0/1 bitoniche (ad ogni passo rendiamo pulita metà della sequenza)