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

Slides:



Advertisements
Presentazioni simili
Lez. 11 (11/12) - PBElementi di Programmazione1 Lezione 11 Esercizi.
Advertisements

Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Ottimizzazione statica del codice per processori pipelined Canella Matteo & Miglioli Filippo.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione 1, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a.2009/2010 Prof.ssa Chiara Petrioli.
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 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 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 Paralleli e Distribuiti a.a. 2008/09 Lezione del 15/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Algoritmi e strutture Dati - Lezione 7
1 Corso di Informatica (Programmazione) Lezione 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
CORSO DI PROGRAMMAZIONE II
Algoritmi e Strutture Dati (Mod. A)
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Dott.ssa.
Istruzioni Iterative Nicola Fanizzi
Strutture di controllo in C -- Flow Chart --
Strutture dati per insiemi disgiunti
Algoritmi e Strutture Dati
Prof. Cerulli – Dott.ssa Gentili
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.
ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then.
Cammini minimi da un sorgente
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
Algebra di Boole.
Soluzione 6: Algoritmo Quicksort
Somma e differenza tra vettori
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Lez. 11 (13/14)Elementi di Programmazione1 Lezione 11 Esercizi.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 07/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
PRIMI ELEMENTI DI PROGRAMMAZIONE
Algoritmi e strutture Dati - Lezione 7 1 Algoritmi di ordinamento ottimali L’algoritmo Merge-Sort ha complessità O(n log(n))  Algoritmo di ordinamento.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione pre 1ma prova in itinere Marco D. Santambrogio – Ver. aggiornata.
La funzione CASUALE. Gli istogrammi.
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.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi 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.2010/2011 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.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 17/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI

Algoritmi Paralleli e Distribuiti a.a. 2008/09 2 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 lalgoritmo A che computa C sul modello M è ottenibile da A tramite lapplicazione 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(log n) per il broadcast si può trasportare lalgoritmo su una PRAM ER. Vediamo come affrontare la trasportabilità della scrittura concorrente da PRAM CW a PRAM EW.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 3 Simulazione della scrittura concorrente: stessa informazione Sia dato un algoritmo per PRAM CW con scrittura concorrente di valori identici. Loperazione 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 è effettuato a livello hardware

Algoritmi Paralleli e Distribuiti a.a. 2008/09 4 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 dellindice del processore che vuole scrivere). In entrambi i casi la simulazione richiede tempo parallelo logaritmico.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 5 Simulazione della lettura concorrente (caso generale) Problema: N processori P 1, P 2, …, P n vogliono leggere il contenuto di K celle di memoria (in generale K<N e non tutti i processori vogliono leggere dalla stessa locazione di memoria) su una P-RAM di tipo EREW. Algoritmo: Passo 1: si costruisca M, vettore di coppie del tipo (P i, L j ), ciascuna indicante che il processore i-esimo vuole leggere la j-esima locazione di memoria (i=0…N-1, j=1…K). Questo vettore viene ordinato in modo stabile, rispetto ai valori L j (la stabilità garantisce lordinamento delle coppie). Passo 2: si raggruppino i processori rispetto alla comune locazione di memoria a cui vogliono accedere, si individuino gli inizializzatori di ogni blocco e si conti il numero di elementi in ogni blocco. Passo 3: il primo processore di ogni blocco legge la locazione corrispondente e poi attiva unoperazione di broadcast sul blocco. Passo 4: tutti i processori, in parallelo leggono linformazione richiesta.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 6 PASSI 1 e 2 Passo 1: for i = 0 to n-1 pardo P i :M[ i ] = (i, L j )// coppie (proc, loc) sort(M, loc); Passo 2: P 0 :iniz[ 0 ] = true; B[ 0 ] = 1 for i = 1 to n-1 pardo P i :if M[ i ].loc M[ i-1 ].loc then iniz[ i ] = true; B[ i ] = 1 else iniz[ i ] = false; B[ i ] = 0 PrefixSum(B, n) Il vettore B è utilizzato per identificare il blocco di appartenenza di ogni processore Proc Loc Proc Loc TFFTFT iniz B B

Algoritmi Paralleli e Distribuiti a.a. 2008/09 7 PASSO 3 Invece di eseguire K broadcast differenti (uno per blocco) si esegue un unico broadcast multiplo che tiene conto della separazione in blocchi Passo 3:// Broadcast multiplo for i = 0 to n-1 pardo P i :if iniz[ i ] then D[ i ] = contenuto di M[ i ].loc for j = 0 to log n -1 do for i = 0 to n-1 pardo P i :if iniz[ i ] and i+2 j <n and B[ i ] = B[ i+2 j ] then D[ i+2 j ] = D[ i ] iniz[ i+2 j ] = true TFFTFT iniz xyz D B xxyyz D xxxyyz D xxxyyz D

Algoritmi Paralleli e Distribuiti a.a. 2008/09 8 PASSO 4 Passo 4: for i = 0 to n-1 pardo // chi aveva richiesto li-esimo dato P i :R[ M[ i ].proc ] = D[ i ] // nel registro del proc i-esimo // si carica il dato voluto R i = R[ i ] Al termine ogni processore i avrà nel suo registro R il dato contenuto alla locazione L j inizialmente specificata. Tempo Parallelo: Passo 1: T sort Passi 2, 3: logaritmico Passo 4: costante xxxyyz D Proc Loc yxxzyx R

Algoritmi Paralleli e Distribuiti a.a. 2008/09 9 Simulazione della scrittura concorrente (caso generale) Problema: N processori P 1, P 2, …, P n vogliono scrivere i valori a 1, a 2, …, a n rispettivamente, in K diverse celle di memoria di una P-RAM di tipo EREW. In generale K<N e si vuole simulare la concorrenza con priorità (scrive il processore di indice minore). Algoritmo: Idea analoga a quello visto per il caso generale di lettura concorrente Passo 1: si costruisca M, vettore di coppie del tipo (P i, L j ), ciascuna indicante che il processore i-esimo vuole scrivere nella j-esima locazione di memoria (i=0…N- 1, j=1…K) il dato memorizzato nel vettore D (i-esima locazione). Questo vettore viene ordinato in modo stabile, rispetto ai valori di L j. Passo 2: si raggruppino i processori rispetto alla comune locazione di memoria a cui vogliono accedere e si individuino gli inizializzatori di ogni blocco. Passo 3: in ogni blocco, il processore di indice minore (il primo del blocco) scrive la sua informazione nella locazione di memoria caratterizzante il blocco.

Algoritmi Paralleli e Distribuiti a.a. 2008/09 10 Passo 1: analogo Passo 2: P 0 :iniz[ 0 ] = true for i = 1 to n-1 pardo P i :if M[ i ].loc M[ i-1 ].loc then iniz[ i ] = true else iniz[ i ] = false Passo 3: for i = 0 to n-1 pardo P i :if iniz[ i ] then scrivi D[ M[ i ].proc ] in M[ i ].loc Esempio di scrittura concorrente Proc Loc xyzabc D Proc Loc TFFTFT iniz y Memoria xa xyzabc D P3P3 P0P0 P5P5

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

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