Simulation is a vital tool in the design and analysis of large systems. The performance of many of these is too complex to describe in discrete terms and the only way in which the system may be characterised is to use a simulator to accurately model its structure and functionality.
These simulations involve modelling, within a computer, the individual behaviour of a large number of components and the interactions between these components. One method of doing this, discrete event simulation, involves breaking down the interactions into a series of events, occurring at discrete locations, in time order, and interacting with other events. A large discrete event simulation will require something in the order of to individual events to be processed. With this number of events, it may be necessary to use multiple processors in order to complete the simulation within a realistic time-frame. Fortunately, discrete event simulation algorithms amenable to parallel processing do exist.