algoritmul hirschberg-sinclair

21
Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare Algoritmi Paraleli şi Distibuiţi – Prezentări Laborator Algoritmul Hirschberg-Sinclair Alexandru Juncu 332CA [email protected]

Upload: alexandru-juncu

Post on 08-Jun-2015

2.368 views

Category:

Documents


8 download

DESCRIPTION

Prezentare Algoritmi Paraleli si Distribuiti: Algoritmul Hirschberg-Sinclair de alegere a liderului intr-un inel bidirectional

TRANSCRIPT

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

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

Algoritmul Hirschberg-Sinclair

Alexandru Juncu

332CA

[email protected]

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

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

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

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

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

Problema: Alegera Liderului (II)

• Diverse situaţii (diverse topologii)

• Diverse nevoi de complexitate

=> diverşi algoritimi

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

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

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 maidefavorabil) :

Σ i = O(n22)

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

• Runda 0– 6 , 7 şi 8 sunt lideri

• Runda 1:– 7 şi 8 sunt lideri

• Round 2:– 8 este singurul lider

• 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)

• Faza 0:

//send(id, faza, contor)

send(id, 0, 1)

12

34

5

6

7

8 8

2

6

7

3

5 8

1

5

3 74

6

2

4

1

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)

12

34

5

6

7

8

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

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (III)

• Faza 0:

dacă

(am_primit_amble_raspunsuri)

atunci devin_lider()

faza_urmatoare()

12

34

5

6

7

8

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

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (IV)

• Faza 1:

send(id, 1, 2)

12

34

5

6

7

8 8

6

7

5 8

7

6

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

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (V)

• Faza 1:

dacă (id_primit > id_curent)

atunci forward(id,1,1)

12

34

5

6

7

8

8

7

8

57

6

6

5

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

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (VI)

• Faza 1:

dacă

(id_primit > id_curent)

atunci trimite_raspuns(OK)

12

34

5

6

7

8

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

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (VII)

• Faza 1:

dacă

(am_primit_amble_raspunsuri)

atunci devin_lider()

faza_urmatoare()

12

34

5

6

7

8

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

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (VIII)

• Faza 2:

send(id, 2, 4)

12

34

5

6

7

88

7

8

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)

12

34

5

6

7

8

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

Universitatea Politehnica Bucureşti - Facultatea de Automatica si Calculatoare

Exemplu (IX)

• Faza 2:

dacă

(am_primit_amble_raspunsuri)

atunci devin_lider()

sfarsit()

12

34

5

6

7

8

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

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