Presentation is loading. Please wait.

Presentation is loading. Please wait.

Distributed Computing 2. Leader Election – ring network Shmuel Zaks ©

Similar presentations


Presentation on theme: "Distributed Computing 2. Leader Election – ring network Shmuel Zaks ©"— Presentation transcript:

1 Distributed Computing 2. Leader Election – ring network Shmuel Zaks zaks@cs.technion.ac.il ©

2 message passing asynchronous 9 4 5 8 6 ? Leader election

3  motivation  who starts?  Leader election, maximum finding, spanning tree (Leader election)

4  Unidirectional ring  Bidirectional rings  Complete networks  General networks (Leader election)

5 Unidirectional ring phases, unique execution (Leader election) 5 2 8 4 1 6 3 7

6 Bidirectional ring (Leader election) 5 2 8 4 1 6 3 7 sense of direction L R L L L L L L L R R R R R R R

7 Bidirectional ring (Leader election) 5 2 8 4 1 6 3 7 no sense of direction R R L L L L L L L R R L R R R R

8 Sense of Direction : For each process p in a bidirectional ring, its left and right neighbors are termed left(p) and right(p) respectively. If right(left(p)) = p for every p, then there is a sense of direction (otherwise – no sense of direction)

9 LeLann’s algorithm state := candidate; send (my_id); receive (nid); while nid ≠ my_id do if nid > my_id then state:=no_leader; send (nid); receive (nid); od; if state=candidate then state:=leader.

10 (LeLann’s algorithm) 5 2 8 4 1 6 3 7 messages: 64 time: 8 My_id nid 1 5

11 Theorem: LeLann’s algorithm terminates, and exactly one processor is in state= leader. Message complexity: O(n 2 ) (worst and average) Time complexity: O(n) (LeLann’s algorithm)

12 Chang and Roberts algorithm state := candidate; send (my_id); receive (nid); while nid ≠ my_id do if nid > my_id then state:=no_leader; send (nid); receive (nid); od; if state=candidate then state:=leader.

13 or: state := candidate; send (my_id); while state ≠ leader do receive (nid); if nid > my_id then send (nid); od; if nid = my_id then state:=leader. (Chang and Roberts’ algorithm)

14 5 2 8 4 1 6 3 7 messages: 2+1+8+2+1+1+4+1= 20 time: 8

15 Theorem: Chang and Roberts’s algorithm terminates, and exactly one processor is in state= leader. Message complexity: O(n 2 ) (worst) Time complexity: O(n) (Chang and Roberts’ algorithm)

16 Theorem: The average message complexity of Chang and Roberts’s algorithm is O(n log n). assume all rings equally probably (for the proof – assume ids are 1,2,…, n) (Chang and Roberts’ algorithm)

17 K i P(i,k) – probability that id i makes exactly k steps (Chang and Roberts’ algorithm)

18

19 or: Consider all rings Each id makes 1 step – times Identity of P i : makes 2 nd step iff it is largest among Pi, Pi+1, which happens times Identity of Pi: makes 3 rd step iff it is largest among Pi, Pi+1,Pi+2, which happens times, etc … (Chang and Roberts’ algorithm)

20 Bidirectional rings 5 2 8 4 1 6 3 7 messages: ? time: ?

21 Phases 1,2,… processors start phase k no. of phases messages time = O(n) Hirschberg and Sinclair’s algorithm

22 5 2 8 4 1 6 3 7 messages: ? time: ? Franklin’s algorithm

23 5 2 8 4 1 6 3 7 messages: ? (Franklin’s algorithm) messages: 16messages: 32messages: 48

24 no. of phases messages time = O(n) (Franklin’s algorithm) Exercise: what is the expected number of active processors after the first phase?

25 Peterson’s 1 st Algorithms This algorithm is a modification of Franklin’s algorithm for unidirectional ring. The basic idea is, during a phase, each active process receives the temporary identifier of its nearest active neighbor and that neighbor’s nearest active neighbor’s temporary identifier, then applies Franklin’s strategy. DKRP

26 Each node maintains four variables: state { candidate, relay, leader} tid – temporary identity ntid – first id received nntid – second id received (Peterson’s 1 st Algorithms)

27 state := candidate ; tid := id ; while state  relay do begin [start phase] send( tid ); receive( ntid ); if ntid = id then state := leader ; if tid > ntid then send( tid ); else send( ntid ); receive( nntid ); if nntid = id then state := leader ; if ntid  max( tid, nntid ) then tid := ntid else state := relay ; end; (now state = relay )

28 while state  leader do begin receive( tid ); if tid = id then state := leader ; send( tid ); end (now state = relay )

29 5 2 8 4 1 6 3 7 tid ntid nntid 5 3 1 8 7 6 2 4 5 1 8 4 2 6 7 5 3 1 8 42 6 7 3 tid:=id; candidate [start phase] : send(tid); receive(ntid); phase 1a

30 5 2 8 4 1 6 3 7 tid ntid nntid 5 3 1 8 7 6 2 4 5 1 8 42 6 7 3 5 5 8 8 4 6 7 7 5 5 8 84 6 7 7 candidate: if tid > ntid then send(tid); else send(ntid); receive(nntid); phase 1b

31 5 2 8 4 1 6 3 7 tid ntid nntid 5 3 1 8 7 6 2 4 5 1 8 42 6 7 3 5 5 8 84 6 7 7 candidate: if ntid  max(tid, nntid) then tid:=ntid else state := relay; 7 5 8 3 1 4 phase 1c

32 5 2 8 4 1 6 3 7 tid ntid nntid 5 3 1 8 7 6 2 4 5 1 8 42 6 7 3 5 5 8 84 6 7 7 7 5 8 3 1 4 phase 2a candidate [start phase] : send(tid); receive(ntid); relay: … 5 7 5 5 5 88 8 8 8 7 7

33 5 2 8 4 1 6 3 7 tid ntid nntid 5 3 1 8 7 6 2 4 5 1 8 42 6 7 3 5 5 8 84 6 7 7 7 5 8 3 1 4 phase 2b 5 5 88 8 8 7 7 candidate: if tid > ntid then send(tid); else send(ntid); receive(nntid); relay: … 8 7 8 8 8 7 7 88 8 8

34 5 2 8 4 1 6 3 7 tid ntid nntid 5 3 1 8 7 6 2 4 5 1 8 42 6 7 3 5 5 8 84 6 7 7 7 5 8 3 1 4 phase 2c 5 5 88 8 8 7 7 8 8 7 7 88 8 8 candidate: if ntid  max(tid, nntid) then tid:=ntid else state := relay; relay: … 8

35 5 2 8 4 1 6 3 7 tid ntid nntid 5 3 1 8 7 6 2 4 5 1 8 42 6 7 3 5 5 8 84 6 7 7 7 5 8 3 1 4 phase 3a 5 5 88 8 8 7 7 8 8 7 7 88 8 8 8 candidate [start phase] : send(tid); receive(ntid); relay: … 8 8 8

36 Exercises: 1. why send max{tid,ntid}? 2. what happens if n=2? 3. what happens if n=1?

37 P max – processor holding max_id Phase 1,2,… t p - number of non-relay processors starting phase p. Lemma: During the execution of the algorithm, a candidate processor that becomes relay will never be in a candidate state. Lemma: For every p, if t p ≥ 3 then t p+1 ≤ t p / 2.

38 Lemma: if t p ≥ 3 then at the start of phase p: for p>1: The tid of a candidate is equal to the tid of the preceeding candidate in the previous phase. (corollary: for every p: each identity resides as the tid of at most one candidate processor.) If the id of P i resides in P k, then all processors P i,P i+1, …, P k-1 are relays. max_id resides as a tid of some processor. Lemma: if t p = 2 or t p = 1 then the algorithm terminates, with the processor holding max_id as a leader.

39 Theorem: Peterson’s 1st algorithm always determines a unique processor – the one holding the largest identity - as a leader. Message complexity ≤ 2n log n Time complexity ≤ 2n-1 Exercise: show examples for worst cases and for best cases in terms of time and in terms of messages.

40 Peterson’s 2 nd Algorithm improvement of Peterson’s 1 st algorithm Instead of comparing its id with both neighbors in the same time, a process first compares itself with its left neighbor, then its right neighbor.

41 Each node maintains four variables: state { candidate, relay, leader} tid – temporary identity ntid – id received (Peterson’s 2 nd Algorithms)

42 state := candidate ; tid := id ; while state  relay do begin [compare to left, odd phase] send( tid ); receive( ntid ); if ntid = id then state := leader ; if tid < ntid then state := relay ; end; begin [compare to right, even phase] send( tid ); receive( ntid ); if ntid = id then state := leader ; if tid > ntid then state := relay else tid := ntid ; end; (now state = relay )

43 while state  leader do begin receive( tid ); if tid = id then state := leader ; send( tid ); end (now state = relay )

44 5 2 8 4 1 6 3 7 tid ntid 5 3 1 8 7 6 2 4 5 1 8 42 6 7 3 begin [compare left] send(tid); receive(ntid); if ntid = id then state :=leader; if tid < ntid then state := relay; end; phase 1a

45 5 2 8 4 1 6 3 7 tid ntid 5 3 1 8 7 6 2 4 5 1 8 42 6 7 3 phase 1b begin [compare right] send(tid); receive(ntid); if ntid = id then state :=leader; if tid > ntid then state := relay else tid := ntid ; end; relay: … 5 5 8 8 8 3 7 7 7 8

46 5 2 8 4 1 6 3 7 tid ntid 7 3 1 8 7 8 2 4 5 1 8 42 6 7 3 phase 2a 5 5 8 8 8 3 7 7 begin [compare left] send(tid); receive(ntid); if ntid = id then state :=leader; if tid < ntid then state := relay; end; relay: …

47 Theorem: Peterson’s 2nd algorithm always determines a unique processor as a leader. Message complexity ≤ 1.44… n log n Exercise: show an example where a processor whose id is not the largest is elected as a leader.

48 phases p, p-1, … 1 (last phase) t k – no. of processors that remain candidates after phase k = no. of processors that start phase k-1. t p+1 = n t 1 = 1 t 2 ≥ 2

49 Lemma: t k ≤ no. of processors that became relay during phase k+1 Proof: We show that for each processor that remained active after phase k there is a processor that became relay during phase k+1 (the previous phase)

50 beginning of phase k+1 end of phase k end of phase k+1 = beginning of phase k p p p Case a: k is odd

51 P survived phase k: end of phase k end of phase k+1 = beginning of phase k p p q q ? Hence p > q Case a: k is odd

52 If in the beginning of phase k+1 all of these were already relays … end of phase k+1 = beginning of phase k p q then p would have become relay, contradiction. Case a: k is odd

53 Lemma: t k ≤ no. of processors that became relay during phase k+1 Corollary: t k ≤ t k+2 - t k+1 t k + t k+1 ≤ t k+2 t k ≥ Fibonacci k+1 =

54 n = t p+1 ≥ Fibonacci p+2 = message complexity ≤ np ≤ 1.44… n log n no. of phases = p ≤ 1.44… log n

55 References E. Chang and R. Roberts, An improved algorithm for decentralized extrema-finding in circular configurations of processes, Communications of the ACM}, 22, 5, 1979, pp. 281-283.

56 References D. Dolev, M. Klawe and M. Rodeh, An O(n log n) unidirectional distributed algorithm for extrema finding in a circle, Journal of Algorithms, 3, 1982, pp. 245-260.

57 References W. R. Franklin, On an improved algorithm for decentralized extrema finding in circular configurations of processors, Communication of the ACM, 25, 1982, pp. 336-337.

58 References D. S. Hirschberg and J. B. Sinclair, Decentralized extrema-finding in circular configuration of processors, Communications of the ACM, 23, 1980, pp. 627-628.

59 References G. LeLann, Distributed systems - towards a formal approach, Information Processing Letters, 1977, pp. 155-160.

60 References G. L. Peterson An O(nlogn) unidirectional algorithm for the circular extrema problem. ACM Trans. Program. Lang. Syst. 4,4 (Oct. 1982), 758-762.

61 References N. Santoro, Sense of direction, topological awareness and communication complexity, SIGACT News, 16, 2, Summer 1984, pp. 50-56.


Download ppt "Distributed Computing 2. Leader Election – ring network Shmuel Zaks ©"

Similar presentations


Ads by Google