Presentation on theme: "CSS434 Time & Global States1 CSS434 Time and Global States Textbook Ch11 Professor: Munehiro Fukuda."— Presentation transcript:
CSS434 Time & Global States1 CSS434 Time and Global States Textbook Ch11 Professor: Munehiro Fukuda
CSS434 Time & Global States2 Outline Physical clock synchronization Applications: make Logical clock synchronization Parallel and distributed simulation Global states and consistent cuts Distributed garbage collection, deadlock detection, distributed termination detection, and discrete- even simulation Distributed debugging Checking if a captured snapshot is one of transitory states we have considered.
CSS434 Time & Global States3 Why Clock Synchronization Computer clock: a counter decremented by a crystal oscillation. Single computers: all processes use the same clock. – No problem Multiple computers: impossible to guarantee that the crystals in different computers all run at exactly the same frequency. Synchronization: Absolute (with real time) Necessary for real-time applications such as on-line reservation systems Relative (with each other) Required for those applications that need a consistent view of time across all nodes.
CSS434 Time & Global States4 Clock Synchronization Passive Centralized Algorithms – Christian s Algorithm Assumption: processing time has been measured or estimated Message_delay = (T1 – T0 – processing)/2 New client time = T + message_delay Improvements: Average multiple measurements Discard outlying measurements Client Time server Time T0 T1 Time? Time=T Processing
CSS434 Time & Global States5 Clock Synchronization Active Centralized Algorithm – Berkeley Algorithm Assumption: processing time has been measured or estimated Server: diff(i) = server_time – (ci_time + message_deley) Client: ci_time = ci_time + diff(i) Time server Client 1 Client 2 C1_time C2_time Time? Diff(1) Diff(2)
CSS434 Time & Global States6 Clock Synchronization Distributed Algorithm – Averaging Algorithm Assumption: R is large enough to wait for all broadcast messages All nodes broadcast their time periodically Each node computes average. Improvement: Discard outlying time messages. Exchange their time with their local neighbors. Node 1 Node 2 Node 3 T0 T0 +R T0 +2R T0 +3R N3_time=30 N2_time=32 N1_time=31
CSS434 Time & Global States7 Clock Synchronization Network Time Protocol Note: Arrows denote synchronization control, numbers denote strata. UDP message UTC (Coordinated Universal Time)
CSS434 Time & Global States8 Clock Synchronization Network Time Protocol T i T i-1 T i-2 T i-3 Server B Server A Time mm' Time t t d i = t + t = T i-2 – T i-3 + T i – T i-1 2o = T i-2 – T i-3 – t + T i-1 – T i + t o = (T i-2 – T i-3 + T i-1 – T i )/2 + (t – t)/2 T i-2 = T i-3 + t + o o T i = T i-1 + t - o
CSS434 Time & Global States9 Event Ordering Happened-Before Relation 1.Event e k i : The k th event of process i 2.Sequence h k i The history of process I through to the event e k i 3.Cause-and-effect ee: e proceeds e. 4.Parallel events e e: e and e happen in parallel 5.Happens-Before Relation: If e k i, e l i h i and k < l, then e k i e l i, If e i = send(m) and e j = receive(m), then e i e j, If e e and e e, then e e Most applications need not maintain the real-time synchronized clock.
CSS434 Time & Global States10 Event Ordering Logical Clock 1. e e LC(e) < LC(e) for all events 2. However, we cannot inferLC(e) < LC(e) e e Example: LC(e 2 1 ) > LC(e 1 3 ) but e 2 1 || e 1 3 LC(e i ) := (e i != receive(m)) ? LC + 1 : max(LC, TS(m)) + 1 where TS(m) is the timestamp of message m: P1 P2 P3 e11e11 e21e21 e12e12 e22e22 e13e13 e23e23 LC=1 LC=2 LC=3 LC=4 LC=1 LC=5 m1
CSS434 Time & Global States11 Event Ordering Vector Clock P1 P2 P3 e11e11 e21e21 e12e12 e22e22 e13e13 e23e23 m1 (1,0,0) (2,0,0) (2,1,0) (2,2,0) (0,0,1) (2,2,2) Vi[I] = vi[i] + 1; Pi includes the value t = Vi in every message it sends Vi[j] = max(vi[j], t[j]) for j = 1,2, …,N 1. e e V(e) < V(e) 2. V(e) < V(e) e e Example:neither V(e 2 1 ) V(e 1 3 ) nor V(e 2 1 ) V(e 1 3 ), and thus e 2 1 || e 1 3
CSS434 Time & Global States12 Global State Applications necessary to detect a correct global state This is not a garbage, because the in-transit message points to it Both p1 and p2 are passive and thus seems ready to finish, but an in-transit message makes p1 active again.
CSS434 Time & Global States13 Global State Consistent Cut Finding C such that (e C) (e e) e C p1 p2 p3 p4 e11e11e11e11 e13e13e13e13 e12e12e12e12 e22e22e22e22 e32e32e32e32 e21e21e21e21 e21e21e21e21 e23e23e23e23 e14e14e14e14 e24e24e24e24 e34e34e34e34 C C (send) (receive)
CSS434 Time & Global States14 Global State Distributed Snapshot – Chandy/Lamport  A process that wants to take a snapshot sends a snapshot request to the others. Each process records its state upon receiving the first snapshot request. Each process keep recording the messages until receiving a snapshot request from each of the other process except the one that has originally initiated a snapshot. P0 P1 P2 P0 P1 P2 Snapshot request Ordinary message Message recording s m m m s s s s
CSS434 Time & Global States15 Marker (Snapshot request) receiving rule for process p i On p i s receipt of a marker (snapshot request) message over channel c: if (p i has not yet recorded its state) it records its process state now; records the state of c as the empty set; turns on recording of messages arriving over other incoming channels; else p i records the state of c as the set of messages it has received over c since it saved its state. end if Marker (Snapshot request) sending rule for process p i After p i has recorded its state, for each outgoing channel c: p i sends one marker message over c (before it sends any other message over c). Global State Distributed Snapshot – Chandy/Lamport 
CSS434 Time & Global States16 A Distributed Snapshot Example Time line Consistent Cut Start recording its state Record its state M Stop recording
CSS434 Time & Global States17 Samadi s Algorithm p2 p1 p3 p0 Take snapshot tag Report 15 Report ack Report 20 1.Each process returns an ack whenever receiving a message. 2.Once receiving a snapshot message, each process returns a tag instead of an ack until a new GVT is compute. 3.When receiving a snapshot message, each process returns to P0 the minimum time among: - the minimum timestamp among events that have not yet been processes. - the minimum timestamp among messages that have not yet been acknowledged. - the minimum timestamp among tags it has received. 20 Done
CSS434 Time & Global States18 Mattern s Algorithm  p2 p1 p3 p4 (0,0,0,0) (0,1,0,0) (0,2,-1,0) (0,0,0,1) (0,0,1,1) (0,0,1,0) (0,0,0,0) 1st snapshot 2nd snapshot 1.Process Pi maintains a vector counter: Vi[1..n]. 2.Pi writes in Vi[j] the number of messages sent to Pj. 3.Pi subtract one from Vi[j] when receiving a message from Pj 4.During the 1 st circulation of a take snapshot message, Pi performs: C[1..n]+=Vi[1..n]; Vi[1..n] = 0 Upon completing the 1 st circulation, c[I] presents the number of messages in transit to Pi. 5.During the 2nd circulation, Pi wait for performs: C[i] =
CSS434 Time & Global States19 An Example: Parallel and Distributed Simulation 1cell/time unit 1cell/5 time units 1cell/20 time units Process 0 Process 3 Process 2 Process 1
CSS434 Time & Global States20 An Example: Parallel and Distributed Simulation (Cont d) Process 0 Process 1 Process 2 Process 3 e2 e1 e5 e6 e4 e3 e7 e11 e10 e9 e8 e12 e1 attack Barrier per every simulation cycle What drawbacks does this method have?
CSS434 Time & Global States21 An Example: Parallel and Distributed Simulation (Cont d) Process 0 Process 1 Process 2 Process 3 e2 e1 e5 e6 e4 e3 e7 e11 e10 e9 e8 e12 e1 attack Discrete event simulation with optimistic synchronization e2 e3 e13 e14 Rollback Old event history kept so as to rollback computation. When can we garbage collect such history?
CSS434 Time & Global States22 Time Warp[Jefferson 1985] Optimistic Distributed Simulation Each process has an input message, an output message, and an event history queue. When a process receives a message whose timestamp is older than its local time: Roll back its local event execution to that old timestamp. Roll back its receipt of input messages whose timestamp is newer than that old timestamp. Send anti-messages to cancel all emanated messages whose timestamp is newer than that old timestamp. GVT (Global Virtual Time): is periodically computed to garbage-collect all the executed events whose timestamp is older than GVT. 152 p2 p1 p Arrived late 135RollbackAnti-message LVT LVT LVT
CSS434 Time & Global States23 SPEEDS[Steinman 1992] Breathing Time Buckets p2 p1 P1 s LEH P2 s LEH Next GEH (GVT) This is an optimistic distributed simulator, but so aggressive as Time Warp. Each process broadcasts the oldest local even among those it will execute. This is called a Local Event Horizon (LEH). A process must suspend its even processing if it has received an older LEH than the one it is currently processing. The oldest LEH among all processes become the next Global Event Horizon (GEH). Each process may send out all messages and process all events before this new GEH. Processes which have already processed beyond GEH must roll back their computation to GEH. No anti-messages are sent out.
CSS434 Time & Global States24 Vector timestamps and variable values for the execution Constraints |x1 – x2| <= 50. Before this is violated, a process must send its value to its partner.
CSS434 Time & Global States25 The lattice of global states for the execution
CSS434 Time & Global States26 Evaluating possibly and definitely All included: (2,2) = True Possibility Must be True, and thud we don t care F Definitely = T for all linialization (4,3) = T and this is definitely
CSS434 Time & Global States27 Paper Review by Students Distributed Snapshot Samadi s Algorithm Mattern s Algorithm Discussions: What are pros & cons of these algorithms? Optimistic Synchronization SPEEDS Time Warp Discussions: What are pros & cons of these algorithms in terms of performance, process creation/termination, dynamic memory allocation, and I/O handling?
CSS434 Time & Global States28 Exercises (No turn-in) 1. Textbook p627, Q14.7: An NTP server B receives server A s message at 16:34: bearing a timestamp 16:34: and replies to it. A receives the message at 16:34:15.725, bearing B s timestamp 16:34:25.7. Estimate the offset between B and A and the accuracy of the estimate. 2. Textbook p628, Q14.14: Two processes P and Q are connected in a ring using two channels, and they constantly rotate a message m. At any one time, there is only one copy of m in the system. Each process s state consists of the number of times its has received m, and P sends m first. At a certain point, P has the message and its state is 101. Immediately after sending m, P initiates the snapshot algorithm. Explain the operation of the algorithm in this case, given the possible global state(s) reported by it. 3. Textbook p429, Q14.15: The figure below shows events occurring for each of two processes, p1 and p2. Arrows between processes denote message transmission. Draw and label the lattice of consistent states (p1 state, p2 state), beginning with the initial state (0,0). time p1 p2