P. 1
Algoritmul Hirschberg-Sinclair

Algoritmul Hirschberg-Sinclair

4.0

|Views: 2,310|Likes:
Published by Alexandru Juncu
Prezentare Algoritmi Paraleli si Distribuiti: Algoritmul Hirschberg-Sinclair de alegere a liderului intr-un inel bidirectional
Prezentare Algoritmi Paraleli si Distribuiti: Algoritmul Hirschberg-Sinclair de alegere a liderului intr-un inel bidirectional

More info:

Published by: Alexandru Juncu on Jan 13, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT or read online from Scribd
See more
See less

05/10/2014

original

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Algoritmul Hirschberg-Sinclair
Alexandru Juncu 332CA alexandrujuncu@gmail.com

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Problema: Alegerea Liderului (I)
• Unde avem nevoie de alegerea unui lider ?
– aplicaţii centralizate

• De ce avem nevoie de centralizare ?
– – un nod coordonează întregul sistem exemplu de aplicaţii: • Găsirea Arborelui Minim de Acoperire (liderul este rădăcina) • Reconstruirea după pierderea jetonului într-o topoligie Token Ring

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Alegerea Liderului: ideea generală
• Fiecare nod are trei stări
– – – nedecis subordonat lider

• • •

Starea iniţială: toţi sunt nedecişi (sau se consideră toţi lideri) Starea finală: un singur lider şi ceilalţi subordonaţi Modul de 'negociere'
– transmiterea de mesaje între vecini

Criteriul de alegere:
– depinde de aplicaţie (ex. nodul cu cel mai mare ID)
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Problema: Alegera Liderului (II)
• Diverse situaţii (diverse topologii)

• Diverse nevoi de complexitate => diverşi algoritimi
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu de algoritm simplu pentru Inel
• Chang-Roberts • Reguli:
– – – – fiecare proces trimite un mesaj vecinului din stânga cu ID-ul său dă mai departe orice mesaj primit în care ID-ul este mai mare ca ID-ul propriu dacă primeşte un mesaj cu propriul ID se declară Lider anunţă alegerea sa cu un broadcast
Complexitatea (în cazul cel mai defavorabil) : Σ i = O(n22)

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Algoritmul Hirschberg-Sinclair (I)

Optimizează operaţiunea de alegere prin diminuarea numărului de mesaje Se aplcă pe inele bidirecţionale Alegerea se face incremental Algoritmul funcţionează în faze asincrone

• • •

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Algoritmul Hirschberg-Sinclair (II)

• • • • • •

În faza k, procesul trimite ID-ul său la 2k procese în ambele părţi (mesajul conţine ID şi k ) Dacă se primeşte un ID ce este mai mare ca propriul ID, se trimite mai departe, altfel se ignoră Ultimul proces din lanţ trimite un răspuns spre procesul origine dacă ID-ul său este mai mic decât ID-ul primit Răspunsurile sunt întotdeauna date mai departe Un proces trece la faza k+1 numai dacă primeşte un răspuns din abele părţi la faza k Procesul ce primeste propriul ID se declară lider

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Algoritmul Hirschberg-Sinclair (III)
• Iniţial:
– Toate procesele sunt lideri 6 , 7 şi 8 sunt lideri 7 şi 8 sunt lideri 8 este singurul lider

• Runda 0

• Runda 1:

• Round 2:

• Sunt cel mult log(N) runde

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (I) 1
• Faza 0: //send(id, faza, contor) send(id, 0, 1)

5 5 3

1 1 5 3 7 3

8

8 2

8 2 6 4 6 4 4 6 2

7 7

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (II)
• Faza 0: dacă (id_primit > id_curent) atunci trimite_raspuns(OK)

1 5

8 2 6

3 7
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

4

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (III)
• Faza 0: dacă (am_primit_amble_raspunsuri) atunci devin_lider() faza_urmatoare()

1 5

8 2 6

3 7
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

4

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (IV)
• Faza 1: send(id, 1, 2)

5 5

1

8

8

8 2 6 6

3 7
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

7 7

6 4

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (V) 5
• Faza 1: dacă (id_primit > id_curent) atunci forward(id,1,1)

1 5 7 3 5 7
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

8 6 2 6 8

8

7 4 6

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (VI)
• Faza 1: dacă (id_primit > id_curent) atunci trimite_raspuns(OK)

1 5

8 2 6

3 7
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

4

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (VII)
• Faza 1: dacă (am_primit_amble_raspunsuri) atunci devin_lider() faza_urmatoare()

1 5

8 2 6

3 7
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

4

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (VIII)
• Faza 2: send(id, 2, 4)

1 5

8

8 8 2 6 4

3

7 7 7

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (VIII)
• Faza 2: dacă (id_primit > id_curent) atunci trimite_raspuns(OK)

1 5

8 2 6

3 7
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

4

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (IX)
• Faza 2: dacă (am_primit_amble_raspunsuri) atunci devin_lider() sfarsit()

1 5

8 2 6

3 7
Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

4

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Concluzii

• • •

Complexitate O(log n) faţă de O( n2) Dificultate de implementare relativ redusă Număr fix de paşi

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Întrebări?

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Mulţumesc.

Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->