Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti 2 Lezione n°10.

Slides:



Advertisements
Presentazioni simili
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 29/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Advertisements

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 10/03/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.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
ASD a.a.2010/2011- Lezione n°1 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Richiami di concetti generali Lezione n°1.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi ELEZIONE DEL LEADER Lezione n°8.
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi Lezione n°10.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Come generare un MST in un sistema distribuito Lezione n°13.
Algoritmi Avanzati a.a. 2010/11 Lezione del 18/04/2011 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. EMANUELE FUSCO.
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 Lezione n°9.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati 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 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
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Lezione n°19 Prof.ssa Rossella Petreschi
DISTRIBUZIONI TEORICHE DI PROBABILITA’
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
Alberi binari Definizione Sottoalberi Padre, figli
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati 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.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
B-alberi e alberi autoaggiustanti
Insiemi di punti: altre caratteristiche
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
La gestione degli insiemi disgiunti
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.2014/2015 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Lezione n°4 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Lezione n°12 Prof.ssa Rossella Petreschi
Algoritmi per il flusso nelle reti
Algoritmi per il flusso nelle reti
Lezione n°6 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a. 2010/11
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
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
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Analisi ammortizzata Lezione n°2
Transcript della presentazione:

Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti 2 Lezione n°10

Correttezza e complessità dell’algoritmo LEA Teorema: L’algoritmo LEA risolve il problema dell’elezione del leader su un sistema distribuito sincrono ad anello. Esso richiede complessità temporale n e complessità dei messaggi O(n 2 ). Dimostrazione: La correttezza si basa sui seguenti due fatti: Fatto 1: Nessun processore, eccetto quello di indice massimo, raggiunge lo stato di leader. Fatto 2: Dopo n passi lo stato del processore di indice massimo è quello di leader. Dal Fatto 2 si deduce la complessità temporale che implica anche quella dei messaggi.

Un solo iniziatore Algorithm LEA (Leader Election su un anello con un solo inizializzatore) begin P i :stato = ignoto P init : send inf=init al successore repeat P i : receive inf if inf = halt and stato = ignoto then send halt if inf = i then stato = leader send un segnale di halt al successore if inf < i then inf = i send inf al successore until inf = halt end O(n) messaggi in O(n) passi Si noti che l’intero algoritmo termina quando il segnale di halt torna al leader.

K-vicinato DEFINIZIONE: Il k-vicinato di un processore p in un anello è dato dall’insieme dei processori che sono a distanza k da p nell’anello (sia da sinistra che da destra). Il k-vicinato chiuso di un processore include esattamente 2k+1processori

Algoritmo per l’elezione del Leader con l’ausilio del k-vicinato ALGORITMO (Si procede per fasi) In ogni fase k un processore cerca di diventare leader temporaneo del suo 2 k - vicinato. Solo i processori che riescono ad essere leader temporanei nella fase k diventano poi attivi nella fase k+1. Si dimostra che le fasi sono al più O(logn)

Leader temporaneo Nella fase 0 tutti i processori mandano il loro identificativo al proprio vicino di dx e al proprio vicino di sx. Diventano Leader temporanei nella fase 0 (e quindi processori attivi nella fase 1) tutti quei processori il cui identificativo è maggiore sia dell’identificativo del vicino dx che dell’identificativo del vicino sx. Alla generica fase l, ogni processore p i che è risultato Leader temporaneo alla fase l-1 manda il valore del proprio identificativo i al suo 2 l -vicinato. Solo i vicini con identificatore minore di i, mandano a p i una risposta. Se p i riceve risposta da tutto il suo vicinato, p i diviene Leader alla fase l e attivo alla fase l+1

Algoritmo per l’elezione del Leader con l’ausilio del k-vicinato Algorithmo LEAK (Leader Election su un anello con k-vicinato) begin P init=i :stato = ignoto; send (test,i,0,1) al vicino sx e al vicino dx; repeat P i :if receive (test,j,l,d) from sx (dx) if j = id then stato = leader; send halt if j > i and d ≧ 2 l then send (risp,j,l) to sx(dx) if j > i and d < 2 l then send (test,j,l,d+1) to dx(sx) if receive (risp,j,l) from sx (dx) if j  i then send (risp,j,l) to dx(sx) if hai già ricevuto (risp,j,l) from dx(sx) then send (test,j,l+1,1) to dx and sx if receive (halt) and stato = ignoto then send (halt) until inf = halt end Nota: per non appesantire la scrittura dell’algoritmo sono state dettagliate solo alcune parti dell’algoritmo

Correttezza e complessità dell’algoritmo LEAK Anche in questo caso la correttezza dell’algoritmo si basa sul fatto che nessun processore, eccetto quello di indice massimo, raggiunge lo stato di Leader globale. Complessità dei messaggi(M d ) = numero di fasi(ovvero T d ) moltiplicato per numero di messaggi trasmessi in ogni singola fase: Numero di fasi: al termine della generica fase l, il massimo numero di processori Leader temporanei(Lt) è dato da n/(2 l +1) dato che, se un processore p i risulta Lt, tutti i processori nel suo 2 l -vicinato debbono avere identificativo minore di i. Ne consegue che fra due Lt, p i e p j, ci debbono essere almeno 2 l processori (il vicinato sx dell’uno e quello dx dell’altro). Da queste considerazioni ne consegue che il numero delle fasi sarà al più dell’ordine di logn. Messaggi trasmessi in ogni singola fase: ogni processore attivo al più trasmette 2x 2 l messaggi di test, uno ad ogni processore del suo vicinato. Analogamente può ricevere al più 2x 2 l messaggi di risp, uno da ogni processore del suo vicinato. Pertanto il numero totale di messaggi trasmessi sarà dato da: 4n +  4 x 2 l x (n/ 2 l-1 + 1) = O(nlogn)

Sistemi sincroni e asincroni Sistema sincronoSistema asincrono Un messaggio spedito da un nodo ad un suo vicino arriva sempre in tempo costante La trasmissione dei messaggi ha durata variabile L'assenza di segnale è informazione L'assenza di segnale non fornisce informazione La computazione locale ha costo zero

Da asincrono a sincrono (e viceversa) Ogni algoritmo che risolve un problema per il caso asincrono può essere considerato un algoritmo per sistemi sincroni senza modificare né la complessità temporale, né la complessità dei messaggi. Infatti un algoritmo progettato per un sistema asincrono, gira su tutte le possibili variazioni di tempo e quindi, in particolare, sulla variazione coincidente con il modello sincrono. Meno banale è trasformare un algoritmo progettato per il modello sincrono in uno progettato per il modello asincrono. Infatti la comunicazione fra i nodi sarà più elevata e quindi aumenta sia la complessità temporale che quella dei messaggi. Normalmente la simulazione si effettua implementando un apposito algoritmo asincrono (sincronizzatore) che ha il compito di sincronizzare tra di loro i nodi della rete attraverso scambi di messaggi.

Elezione del leader in un sistema ad anello asincrono Algorithm LEAA (Leader Election Asincrono) begin P init=i :stato = ignoto send i al successore repeat P i :receive inf if inf > i then send inf al successore if inf = i then stato = leader send un segnale di halt if inf = halt and stato  leader then send halt until inf = halt end O(n 2 ) messaggi in n passi L’algoritmo è esattamente lo stesso presentato per il caso sincrono, con l’unica differenza che nella coda dei messaggi ricevuti potranno essere presenti più valori contemporaneamente Quindi LEA e LEAA per rete ad anello coincidono.

complessità temporale Per quanto riguarda la complessità temporale, nel modello sincrono il suo calcolo si riduce essenzialmente a contare il numero delle pulsazioni che trascorrono durante la computazione; nel modello asincrono il suo calcolo corrisponde al numero di messaggi nella più lunga catena casuale della forma “ricevi un messaggio e spedisci un messaggio come conseguenza”, calcolata su tutte le possibili esecuzioni dell’algoritmo e su tutte le possibili strutture del grafo G. Come sempre, queste misure sono considerate nel caso peggiore e in forma asintotica in funzione di n e m, nodi e archi di G.

Impossibilità del risultato nel caso di processi anonimi Negli algoritmi precedenti la differenziazione fra un processo e l’altro è data dalla possibilità di accedere al proprio identificativo. Un sistema si dice anonimo quando questa possibilità è interdetta. Teorema: Sia D un sistema distribuito sincrono di tipo anello. Se tutti gli n (n > 1) processi in D sono anonimi, allora in D non è possibile risolvere il problema dell’elezione del leader. Dimostrazione: la dimostrazione procede per assurdo. Ipotizziamo che il problema del leader ammetta una soluzione su tale sistema: sia A l’algoritmo risolutivo (in A non è possibile fare confronti). Poiché tutti i processori sono identici ed eseguono la stessa sequenza di programma, dato il sincronismo, tutti i processi ricevono e mandano messaggi allo stesso istante. Pertanto o tutti i processi arrivano a dichiararsi leader nello stesso istante (contraddicendo l’unicità del risultato) o nessuno si dichiara leader. In entrambi i casi non si raggiunge il risultato voluto. Si dice che la ragione di questo risultato negativo giace nell’impossibilità di rompere la simmetria del sistema. Un risultato analogo si ha nel caso di anello asincrono.