La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi

Presentazioni simili


Presentazione sul tema: "Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi"— Transcript della presentazione:

1 Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Broadcast con eco Lezione n°11 Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi 1

2 Broadcast in una qualsiasi rete a connessione fissa
Assumiamo connessioni unidirezionali e rete aciclica begin Pinit: Ninit = { q : q è un vicino di Pinit } send messaggio ad ogni q in Ninit repeat Pi: receive messaggio da un vicino p Ni = { q : q è un vicino di Pi } send messaggio ad ogni q in Ni until … end Si ricorda che Pi invia lo stesso messaggio a tutti i suoi vicini contemporaneamente però sia i processori sia i canali di comunicazione sono eterogenei, quindi il tutto è asincrono. In una rete di n nodi, vengono inviati O(m) messaggi in O(d) passi m = numero archi d = diametro della rete Manca il segnale di terminazione globale Pinit AA 2

3 Broadcast con eco in una qualsiasi rete a connessione fissa
Per risolvere il problema della terminazione si usa l’eco Servono connessioni bidirezionali begin Peco: Neco= { q : q è un vicino di Peco } send messaggio ad ogni q in Neco conteco = 0 while conteco < | Neco | receive messaggio da un vicino incrementa conteco termina Pi≠ eco: receive messaggio da un vicino p che chiamo padre Ni = { q  p : q è un vicino di Pi } send messaggio ad ogni q in Ni conti = 0 while conti < | Ni | incrementa conti send messaggio al padre p end AA 3

4 Complessità del broadcast con eco
Durante una esecuzione dell’algoritmo di Broadcast con eco vengono inviati in totale Md = 2m messaggi (2 per ogni arco) e l’algoritmo richiede Td = O(d) passi di comunicazione (dove d è il diametro della rete). AA 4

5 Esempio broadcast con eco 1
0/4 Processore non raggiunto dal Broadcast Processore raggiunto dal Broadcast (all’interno sono riportati i valori di conti e di |Ni|) Messaggio di Broadcast Processore che ha ricevuto conferma da tutti i vicini (incluso l’eco) Messaggio di eco Peco Ogni processore manda solo due messaggi: uno di broadcast ai suoi vicini dopo averlo ricevuto dal padre (prime istruzioni del processore Pi) e uno di eco dopo aver ricevuto messaggi da tutti i suoi vicini (al termine del ciclo while). La distinzione tra messaggi di broadcast e di eco è soltanto logica, di fatto i messaggi sono identici. Nell’esempio, al passo 2, abbiamo due tipi di processori che ricevono messaggi: quelli ancora in attesa del padre e quelli che già sono nel ciclo while. In particolare il processore Pc riceve un messaggio sia da Pa che da Pb. Supponiamo che Pa sia il padre, in quanto il messaggio da lui inviato è finito in testa alla coda. Pc invierà subito un messaggio a Pb, che incrementa il suo contatore, mentre invierà un messaggio a Pa soltanto dopo aver ricevuto Nc messaggi dai suoi vicini (incluso quello inviato da Pb). Il contatore di Pd ha già raggiunto il suo valore massimo e quindi Pd è pronto per mandare un eco al padre. Passo 1: Inizializzazione 0/2 0/4 1/2 2/2 1/4 Pa Pc Pd Pb Passo 2 AA 5

6 Esempio broadcast con eco 2
0/2 1/4 2/2 1/1 2/2 2/4 4/4 Passo 3 Passo 4 4/4 Passo 5 Passo 6 AA 6


Scaricare ppt "Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi"

Presentazioni simili


Annunci Google