Distributed simulation using a look-ahead algorithm

  • Authors:
  • Bojan Groselj;Carl Tropper

  • Affiliations:
  • McGill University, Montreal, Canada;McGill University, Montreal, Canada

  • Venue:
  • EW 2 Proceedings of the 2nd workshop on Making distributed systems work
  • Year:
  • 1986

Quantified Score

Hi-index 0.00

Visualization

Abstract

Simulations are among the most expensive of computational tasks. Consequently, different authors [PEAC79], [CHAN81], [JEFF82] have investigated methods for performing fast concurrent simulations on a network of processors. Basic issues are synchronization (events must be simulated in the order in which they are executed in the real system), flow control and memory management. There are two basic groups of synchronization algorithms, the blocking algorithms [PEAC79], [CHAN79], [CHAN81] and the Time Warp mechanism [JEFF82].In blocking algorithms, the simulated system is represented as a network of logical processes (LP's) or objects and directed links representing communication channels between the objects. Each LP simulates a physical process (PP) in the real system. LP's communicate by exchanging timestamped event messages. An LP is allowed to execute an event with the timestamp t if it is sure it will not receive an event with the timestamp smaller than t in the future. Thus, events are always executed in monotonically increasing time order. This implies that the output timestamps are in an increasing time order as well. Assuming that the communication medium preserves the order of messages, they arrive on a particular input link in an increasing time order. An input buffer is assigned to each input link. This mechanism implies that an LP can always execute the input event with the smallest timestamp if each of the input buffers contains at least one event message. In the event that one or more input queues are empty, the LP is blocked because an event with a timestamp smaller than the timestamps of the waiting events, might yet arrive via an empty input link. Therefore all LP's in the system can be divided at any time into two groups- blocked and unblocked. Only unblocked LP's can execute in parallel (Fig. 1). If all LP's were blocked the simulation would deadlock. This type of the deadlock may occur even when we assume unlimited buffering at the LP's.