global virtual time
play

Global Virtual Time Wallclock time T (GVT t ) during the execution of - PDF document

Global Virtual Time Wallclock time T (GVT t ) during the execution of a Time Warp simulation is defined as the minimum time stamp among all unprocessed and partially Advanced Simulation processed messages and anti-messages in the system at


  1. Global Virtual Time Wallclock time T (GVT t ) during the execution of a Time Warp simulation is defined as the minimum time stamp among all unprocessed and partially Advanced Simulation processed messages and anti-messages in the system at wall-clock T. PDES: Time Warp Mechanism Distributed Snapshots and Fossil Collection 2 Maria Hybinette, UGA Maria Hybinette, UGA Outline Review: Samadi � s Algorithm ● Consistent Cuts ● Transient message problem: » Cut points » Solution: Message acknowledgements » Cut messages ● Simultaneous message problem: » Cut values » Solution: Mark acknowledgements sent after reporting local minimum ● Mattern � s GVT Algorithm » Caveat: Just message acks are not enough (marked » Colors message acks are needed). » Vector counters ● Overhead: » Pipelined algorithm » Message acknowledgments: ● Fossil Collection – Message acknowledgment for ● Thursday: We will do an additional example ● each message and using Mattern’s Algorithms to determine GVT. ● anti-message. 3 4 Maria Hybinette, UGA Maria Hybinette, UGA Consistent Cuts Mattern’s Algorithm Cut point: Cut: ● Asynchronous Cut message: » Executes in background concurrent with time warp Consistent cut: execution (does not require the simulation to � freeze � (i.e., block the LPs). cut ● Avoids message acknowledgements LP 4 message ● Approach: Based on techniques for creating LP 3 Past distributed snapshots (consistent cut) LP 2 » We will see what it means to be a consistent cut Future LP 1 wallclock time » Can some asynchronous algorithms compute GVT(t)? » What about synchronous algorithms? Cut value: 5 Maria Hybinette, UGA

  2. Consistent Cuts Consistent Cuts Cut point: an instant dividing computation into past and future Cut point: an instant dividing computation into past and future Cut: Cut: set of cut points, one per processor Cut message: Cut message: Consistent cut: Consistent cut: cut cut LP 4 LP 4 message message LP 3 LP 3 Past Past LP 2 LP 2 Future Future LP 1 LP 1 wallclock time wallclock time Cut value: Cut value: Consistent Cuts Consistent Cuts Cut point: an instant dividing computation into past and future Cut point: an instant dividing computation into past and future Cut: set of cut points, one per processor Cut: set of cut points, one per processor Cut message: a message that was sent in the past, and received in the future Cut message: a message that was sent in the past, and received in the future Consistent cut: Consistent cut: a cut where all messages crossing the cut are cut messages cut cut LP 4 LP 4 message message LP 3 LP 3 Past Past LP 2 LP 2 Future Future LP 1 LP 1 wallclock time wallclock time Cut value: Cut value: Consistent Cuts Cuts: Divides Past and Future Cut point: an instant dividing computation into past and future cut LP 4 message Cut: set of cut points, one per processor LP 3 Past Cut message: a message that was sent in the past, and received in the future LP 2 Consistent cut: a cut where all messages crossing the cut are cut messages Future LP 1 wallclock time cut LP 4 message ● Consistent Cuts: Includes local state at its cut-point & all its LP 3 transient messages. Past ● Observation: Time stamp of a message sent after a cut point at LP 2 wallclock time T must be at least as large as the minimum of: Future » the smallest time stamp of any unprocessed event in the processor at LP 1 time T » the smallest time stamp of any message received by the processor wallclock time after time T. Cut value: minimum among (1) local minimum of each LP at its cut point and ● GVT must be smaller than or equal to both of these quantities (2) time stamp of cut messages

  3. Observation 1 Observation 2 Asynchronous execution Execution, each LP blocks at cut point LP 4 cut T 1 > Y T 1 T 3 message LP 4 T 2 Z LP 4 T 2 > min( Y, U ) Z LP 3 Y T 3 > min( Y, U, S ) idle Past LP 3 S Y LP 3 Y Y S > X, so LP 2 X T 3 > min( Y, U, X ) U LP 2 X LP 2 X Future LP 1 (Cut value ≤ X, Y, U) U U V V LP 1 LP 1 W W idle wallclock time Wallclock time Any message crossing cut from future to past must have a T Cut value GVT(T) time stamp > the cut value, so they can be ignored when = min( W, X, Y, Z ,U ,V ) = min ts ∀ unprocessed message @ T computing the cut value = min( W, X, Y, Z , U, V ) Message generated by an LP after its cut point must have time ● Cut value equal to GVT(T) using synchronous GVT algorithm stamp greater than the minimum of (freeze LPs: no new computations nor message sends/receives). » The LP � s local minimum at its cut point » Events generated after cut have time stamp > cut value » The time stamp of messages received after the cut point ● Cut value can be used as a GVT value Mattern � s GVT Algorithm Algorithm Overview Challenge: accounting for cut messages LP 4 LP 4 LP 3 cut point LP 3 cut point LP 2 LP 2 LP 1 Wallclock time C1 C2 LP 1 Wallclock time C1 C2 Approach : ● The first cut: ● Construct two cuts C1, C2, approximate cut value along C2 » Changes color of each process (green to red) » Organize processes in ring, pass token around ring » Determine number of green messages sent to each process ● Ensure no message that crosses C1 also cross C2 ● The second cut: » Color LPs, change LP color at each cut point » Color (green/red) each message to that of LP sending message » Each process makes sure all green messages sent to it (message tag) have been received before laying down a cut point » Maintain send/receive message counters » Compute global minimum (GVT value) ● GVT = min( local min along C2, time stamp of red messages ) Example: Vector Counters How does an LP know it has received all its green messages? LP 4 LP 4 LP 3 LP 3 cut point cut point LP 2 LP 2 LP 1 LP 1 Wallclock time Wallclock time C1 C2 C1 C2 ● LP i maintains vector V i [1:N] , where N = #LPs Vector counters for green messages (at C2) i = j received: » V i [i] = number of green messages received by LP i V 1 V 2 V 3 V 4 » V i [r] = number of green messages sent by LP i to LP r V 1 [4] = 0 ● C2: LP i cannot pass token until » V i [i] = ∑ V s [i] (summed over all s ≠ i ) ● C1: Token includes vector to accumulate send counters

  4. Example: Vector Counters Example: Vector Counters LP 4 LP 4 LP 3 LP 3 cut point cut point LP 2 LP 2 LP 1 LP 1 Wallclock time Wallclock time C1 C2 C1 C2 Vector counters for green messages (at C2) i = j received: Vector counters for green messages (at C2) i = j received: V 1 V 2 V 3 V 4 V 1 V 2 V 3 V 4 V 1 [4] = 0 V 1 [4] = 0 V 1 [3] = 0 V 1 [3] = 0 V 1 [2] = 1 . Example: Vector Counters Example: Vector Counters LP 4 LP 4 LP 3 LP 3 cut point cut point LP 2 LP 2 LP 1 LP 1 Wallclock time Wallclock time C1 C2 C1 C2 Vector counters for green messages (at C2) i = j received: Vector counters for green messages (at C2) i = j received: V 1 V 2 V 3 V 4 V 1 V 2 V 3 V 4 V 1 [4] = 0 V 1 [4] = 0 V 2 [4] = 0 V 1 [3] = 0 V 1 [3] = 0 V 2 [3] = 0 V 1 [2] = 1 V 1 [2] = 1 V 2 [2] = -3 V 1 [1] = -2 V 1 [1] = -2 V 2 [1] = 1 Example: Vector Counters Example: Vector Counters LP 4 LP 4 LP 3 LP 3 cut point cut point LP 2 LP 2 LP 1 LP 1 Wallclock time Wallclock time C1 C2 C1 C2 Vector counters for green messages (at C2) i = j received: Vector counters for green messages (at C2) i = j received: V 1 V 2 V 3 V 4 V 1 V 2 V 3 V 4 V 1 [4] = 0 V 2 [4] = 0 V 3 [4] = 1 V 1 [4] = 0 V 2 [4] = 0 V 3 [4] = 1 V 4 [4] = -1 V 1 [3] = 0 V 2 [3] = 0 V 3 [3] = 0 V 1 [3] = 0 V 2 [3] = 0 V 3 [3] = 0 V 4 [3] = 0 V 1 [2] = 1 V 2 [2] = -3 V 3 [2] = 0 V 1 [2] = 1 V 2 [2] = -3 V 3 [2] = 0 V 4 [2] = 2 V 1 [1] = -2 V 2 [1] = 1 V 3 [1] = 0 V 1 [1] = -2 V 2 [1] = 1 V 3 [1] = 0 V 4 [1] = 1

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend