Download presentation

Presentation is loading. Please wait.

Published byLarissa Partney Modified over 3 years ago

1
Optimal Termination Detection for Rings Murat Demirbas OSU

2
Termination Detection in D.S. n Message passing, Asynchronous execution n A process is either active or passive n Active processes: –send and receive messages, –can become passive spontaneously n Passive processes: –can only receive messages, –can become active only by receiving a message.

3
Termination detection problem n The system is terminated iff –all processes are passive –no messages in transit n The problem is to detect termination as and when the system terminated.

4
Related work n Chandy & Lamport snapshot alg. –O(N 2 ) time n Dijkstra & Safra token-based alg. –O(N) time, 2N -- 3N n Chandy alg. –2N integers per process, and message –2N 2 integers at the detector –Sivilotti improved the space complexity

5
Our algorithm n Based on Dijkstra&Safra alg. n Detection in 0 -- N time n each process maintains 1 int. + N bits n token stores N int. + N bits

6
Outline n Dijkstra & Safra alg n Optimal alg –Enhancement 1 –Enhancement 2 n Proof

7
Dijkstra & Safra algorithm n c.j = #mesgs sent - #mesgs received n The initiator obtains a snapshot –sends a token to the ring –gathers the sums of c.j’s n If the snapshot is consistent and no mesg in transit, termination is detected.

8
Dijkstra & Safra alg (cont.) n Snapshot is inconsistent if the receipt of m is recorded but send of m is not. n A process is blackened upon receiving a mesg n A black node blackens the token N 1 2 3

9
N 1 2 3 c.N color.N c.1 color.1 c.2 color.2 c.3 color.3 q color

10
An optimal algorithm for Termination Detection on Rings n First enhancement (Enumeration bits) n Second enhancement (Multiple initiators) n Optimal algorithm = 1st & 2nd enh. combined

11
1st enhancement (enumeration bits) n Dijkstra & Safra blackens every process that receives a message. n However, a message reception violates the snapshot iff the receive of the message is included in the snapshot whereas the send is not.

12
4 1 2 3 5

13
1st enhancement (enumeration bits) n The messages that violate the consistency are those sent by a process in the visited region to another process in the unvisited region. n A process sending a mesg piggybacks its enumeration bit + its process id. n j upon receiving “m” blackens itself iff: –enum.j enum.m –j > sender_id.m

14
An enumeration bit is sufficient... 0 1 1 1 4 1 2 3 5 0 m+

15
1st enhancement: N -- 2N 0 1 1 1 4 2 3 5 0 m+

16
2nd Enhancement (Multiple initiators) n D&S alg has a fixed initiator: N n A vector [q1,q2,…,qN] maintains the sum, q, w.r.t. multiple initiators. n N -- 2N time to detect termination

17
4 2 3 5 [0,0,0,0,0] [q1,0,0,0,0] [B,0,B,B,B] [B,q2,0,B,B] [B,q2,q3,0,B] [B,q2,q3,q4,0] [0,q2,q3,q4,q5] 1

18
The Optimal Algorithm n 2nd enh. blackens j::q.j and requires 2N. n 0--N if we do not blacken any q at 2, and q2, q3 at 4. 1 2 3 4 [q1,q2,q3,q4] m2 m1

19
The Optimal Algorithm(cont.) n We merge 1st & 2nd enh. –enum.j, enum.m, sender_id.m (1st enh.) –[q1,q2,…,qN], tok_color.[1…N] (2nd enh.) –color.j.k n color.j.k: j’s color w.r.t. initiator k n propagate and retransmit actions are merged into one action

20
The Optimal Algorithm(cont.) n j receives m from l; –enum.j enum.m and j > sender_id.m –m violates the consistency of the snapshot k::j k N 1 k l – k:j k N 1 k l: color.j.k := black

21
Proof n W detects X: –W X –X leads-to W n Proof: –X: termination predicate –W: witness predicate –I: invariant –(I W) X –(I X) leads-to W

22
Proof (cont) n X= ( ( j:: idle.j) (#mesg_sent - #mesg_rcvd =0) ) n W= ( j:: (tok@j) (idle.j) (color.j.j=white) (c.j+q.j=0) (tok_color.j=white) ) n I= ( ( j::c.j) = #mesg_sent - #mesg_rcvd (I 1 ) ( i:: Q.i R.i S.i T.i) ) n Q.i= ( ( j:j VSTD.i: idle.j) q.i= ( j:j VSTD.i:c.j) ) n R.i= ( q.i+( j:j VSTD.i:c.j) > 0 ) n S.i= ( j: j VSTD.i : color.j.i=black ) n T.i= (tok_color.i=black )

23
Proof: (I W) X n Token is at j n W (1)tok@j (2)idle.j (3)color.j.j=white (4)c.j+q.j=0 (5)tok_color.j=white n (1 3) S.j n (1 4) R.j n 5 T.j n (I S.j R.j T.j) Q.j n (1 2 Q.j 4 I 1 ) X

24
Proof: (I X) leads-toW in 0--N n (I X) ( j:: idle.j) ( j::c.j) = 0 n The only enabled action is Propagate Token n Let tok@j; then q.j=0, color.j.j=white, tok_color.j=white n Claim: ( k:: color.k.j = white) n Then; tok_color.j=white is stable. n When tok@j again, (c.j+q.j = ( j::c.j) = 0 ) n Therefore, within 1 cycle of token W is satisfied. n 0--N

25
Proof: ( k:: color.k.j = white) n Assume ( k:: color.k.j = black). 3 cases to consider: –k<j : color.k.j = black before token visits k leads-to color.k.j = white color.k.j cannot be blackened by 1 i k, since enum.i=enum.k color.k.j cannot be blackened by k i. –k=j : color.j.j=white –k>j : sender_id j then color.k.j is not blackened sender_id > j then color.k.j is not blackened, since enum.sender_id =enum.k

26
Conclusion n An optimal termination detection algorithm on rings 0--N

27
New Results T.D. in Trees & Chandy’s model: n 2h--3h detection in trees n h detection in trees n Efficient T.D. in Chandy’s model: –1--2 rounds to detect termination –requires just 1 integer + 1 bit in each process including DET. –Chandy: 2N integers in each process, 2N 2 integers in DET.

Similar presentations

OK

Chapter 11 Detecting Termination and Deadlocks. Motivation – Diffusing computation Started by a special process, the environment environment sends messages.

Chapter 11 Detecting Termination and Deadlocks. Motivation – Diffusing computation Started by a special process, the environment environment sends messages.

© 2018 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google