Jump to content

User:Lsalgo/Synchronous Relaxation for Parallel Discrete Event Simulations

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Lsalgo (talk | contribs) at 04:54, 27 May 2011. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Synchronous Relaxation for Parallel Discrete Event Simulations is a method to perform a discrete event simulation on a parallel computer. The Synchronous Relaxation (SR) method is general in that it makes no use of specifics of the simulated system and it is computationally efficient in that it typically delivers the speedup of the order of , where is the number of processors in the parallel computer.

When the SR is applicable

A model of a multi-component dynamic system with discrete events might be suitable for a SR simulation. The time is assumed to be continuous in such a model. The system state can change only instantaneosly and only by changing the state of a component. This is identified as a discrete event that occurs in that component. The event may affect future events in this and other components. Examples of such models are numerous: telephone networks models, models of Ising spins, models of collision detection of particles, to name a few.

In a circuit-switched telephone network, an event is a change of the occupancy levels of trunks (channels) along a path or a network of trunks, this path or network is called a circuit, when a phone call is allocated (placed) to or de-allocated (removed) from the circuit. Occupancy level of a trunk affects future allocations or de-allocations of this and other trunks via the logic of the allocation algorithm. The comparative behavior of various allocation algorithms is a subject of the study in this simulation, where both, the SR method of parallel simulations and the term "Synchronous Relaxation" itself in the application to parallel simulations, were originally introduced [1].

A system of Ising spins is a set of atoms in space so that each atom has a few neighbors. Each atom has a state, called "spin". Atoms change spins at asynchronous random times, which the model assumes to be independent of spins. When an atom changes its spin, the new spin is a function of the existing spins of its neighbors and itself [2].

In a collision detection model, for example, in a model of chaotically colliding billiard balls, the motion of each ball is independent of other balls as long as the paths do not cross. Occupancy conflicts in pairs of balls are resolved through collisions. At a collision, which the model assumes to be instantaneous, the two participating balls change the directions and speeds of their motions and then each continues with the next independent segment of its trajectory [3].

How the SR works

Having a parallel computer with processing elements (PEs) and assuming the number of system components is not smaller than , each component is made a responsibility of a PE, so that the PE is supposed to produce the history of the events of the component.

Each PE will keep track of the simulated time such that on the interval all histories are known; this is called committed time. Committed time increases in steps, in synchrony among all PEs; its value is common to all PEs. Each step consists of several iterations.

At each iteration, each PE produces a tentative or speculative history of the subsystem it hosts beyond the current . The PE extends its local history until its local time reaches , where is the step size of committed time increases. Since subsystems are, in general, connected, in order to produce a correct local history, a PE needs to know the correct local histories of other PEs. But they are not known, because other PEs are in the same quandary.

Under the condition that somehow a PE knew the correct histories of all others, it would produce a correct history for itself; when all PEs produce correct histories, then the next committed time will become . So all that is left to explain is how to achieve this condition.

The mechanism is by iterations. During the first iteration, each PE makes the simplest assumption about the histories of the other PEs. For example, it may assume that the states of the other subsystems do not change on the interval . This assumption will enable it to produce its own history on the interval .

After all the PEs generate local history on the interval , they compare their histories. This comparison is done in synchrony, in the sense that the PEs perform the comparison only after they have all completed the previous task of generating their histories.

As a rule, there will be inconsistencies between the assumed and actual (generated) histories of other PEs. If so, the PEs need to perform more iterations. During subsequent iterations, if a PE needs to know the local history of another PE, it uses that history generated in the last iteration. The goal of producing correct histories on the interval is achieved if no PE detects any inconsistencies between the assumed and actual history of any other PE. Once this happens, the new committed time for all PEs becomes , and the parallel computer can begin to work over the next increase of the committed time.

Why the SR is usually efficient

References

  1. ^ Stephen G. Eick, Albert G. Greenberg, Boris D. Lubachevsky, and Alan Weiss. Synchronous relaxation for parallel simulations with applications to circuit-switched networks, ACM Trans. on Modeling and Computer Simulation (TOMACS), Volume 3 Issue 4, Oct. 1993 http://portal.acm.org/citation.cfm?id=159744
  2. ^ Boris D. Lubachevsky, and Alan Weiss. Synchronous Relaxation for Parallel Ising Spin Simulations, 15th Workshop on Parallel and Distributed Simulation, Lake Arrowhead, California, May 2001, pp.185-192 http://arxiv.org/PS_cache/cs/pdf/0405/0405053v1.pdf
  3. ^ B.D. Lubachevsky, Simulating Billiards: Serially and in Parallel, Int.J. in Computer Simulation, Vol. 2 (1992), pp. 373-411