An overview of discrete event simulation methodologies and implementation

Discrete event simulation has been widely used to model and evaluate computer and engineering systems and has been an on-going area of research and development. This paper presents an overview of the field. It covers specifications of discrete event systems, simulation methodology, simulation languages, data structures for event management, and front and backend support in simulation packages including random number generation and resource management. The emphasis of the survey is on simulation methodology and event scheduling, which forms the core of any simulation package or environment.

[1]  John Craig Comfort A taxonomy and analysis of event set management algorithms for discrete event simulation , 1979 .

[2]  Joseph B. Evans Investigations into the scheduling of events and modelling of interrupts in discrete event simulation , 1982 .

[3]  Jean G. Vaucher On the Distribution of Event Times for the notices in a Simulation Event List , 1977 .

[4]  B. W. Marsden A standard Pascal event simulation package , 1984, Softw. Pract. Exp..

[5]  Shikharesh Majumdar,et al.  Scheduling in multiprogrammed parallel systems , 1988, SIGMETRICS '88.

[6]  Kurt Maly,et al.  An efficient data structure for the simulation event set , 1977, CACM.

[7]  M. H. MacDougall Simulating computer systems: techniques and tools , 1989 .

[8]  Robert E. Tarjan,et al.  Fibonacci heaps and their uses in improved network optimization algorithms , 1987, JACM.

[9]  K. D. Tocher Review of Simulation Languages , 1965 .

[10]  Ronald A. Olsson Using SR for discrete event simulation: A study in concurrent programming , 1990, Softw. Pract. Exp..

[11]  Paul A. Fishwick,et al.  A simulation environment for multimodeling , 1993, Discret. Event Dyn. Syst..

[12]  Kurt Maly,et al.  A comparison of heaps and the TL structure for the simulation event set , 1978, CACM.

[13]  A. Alan B. Pritsker,et al.  Introduction to simulation and SLAM II , 1979 .

[14]  Robert E. Tarjan,et al.  Self-adjusting binary search trees , 1985, JACM.

[15]  Anna Haá Computer system simulation in Pascal , 1982 .

[16]  Dirk Grunwald A users guide to awesime: an object oriented parallel programming and simulation system , 1991 .

[17]  William L. Maxwell,et al.  Analysis of the Time Indexed List Procedure for Synchronization of Discrete Event Simulations , 1978 .

[18]  Jean G. Vaucher,et al.  A comparison of simulation event list algorithms , 1975, Commun. ACM.

[19]  Anna Hác PL/I as a discrete event simulation tool , 1984, Softw. Pract. Exp..

[20]  Robert E. Tarjan,et al.  Self-adjusting binary trees , 1983, STOC.

[21]  D. C. S. Shearn,et al.  Discrete event simulation in algol 68 , 1975, Softw. Pract. Exp..

[22]  Bernard P. Zeigler,et al.  Hierarchical, modular discrete-event modelling in an object-oriented environment , 1987 .

[23]  F. Paul Wyman,et al.  Improved event-scanning mechanisms for discrete event simulation , 1975, Commun. ACM.

[24]  L.H. Putnam Trends in measurement, estimation, and control (software engineering) , 1991, IEEE Software.

[25]  Don T. Phillips,et al.  A two-list synchronization procedure for discrete event simulation , 1981, CACM.

[26]  Ernst G. Ulrich Event manipulation for discrete simulations requiring large numbers of events , 1978, CACM.

[27]  Kurt Mehlhorn,et al.  Faster algorithms for the shortest path problem , 1990, JACM.

[28]  Giorgio Bruno Using Ada for discrete event simulation , 1984, Softw. Pract. Exp..

[29]  Michael J. Fischer,et al.  Fishspear: a priority queue algorithm , 1994, JACM.

[30]  J. Kriz,et al.  Extension of Pascal by coroutines and its application to quasi‐parallel programming and simulation , 1980, Softw. Pract. Exp..

[31]  Ray Jain,et al.  The art of computer systems performance analysis - techniques for experimental design, measurement, simulation, and modeling , 1991, Wiley professional computing.

[32]  Douglas W. Jones,et al.  An empirical comparison of priority-queue and event-set implementations , 1986, CACM.

[33]  Mark Cameron Little,et al.  Construction and Use of a Simulation Package in C , 1993 .

[34]  S. K. Park,et al.  Random number generators: good ones are hard to find , 1988, CACM.

[35]  Robert E. Tarjan,et al.  Relaxed heaps: an alternative to Fibonacci heaps with applications to parallel computation , 1988, CACM.

[36]  K. Gopinath,et al.  A C++ Simulator Generator from Graphical Specifications , 1997 .

[37]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[38]  Siegfried Treu,et al.  The hierarchical simulation language HSL: a versatile tool for process-oriented simulation , 1991, TOMC.

[39]  Herb Schwetman,et al.  Introduction to process-oriented simulation and CSIM , 1990, 1990 Winter Simulation Conference Proceedings.

[40]  Krzysztof Pawlikowski,et al.  Steady-state simulation of queueing processes: survey of problems and solutions , 1990, CSUR.

[41]  Robert J. T. Morris,et al.  Visual Simulation: The Performance Analysis Workstation , 1985, Computer.

[42]  Paul A. Fishwick,et al.  SimPack: getting started with simulation programming in C and C++ , 1992, WSC '92.

[43]  James O. Henriksen An improved events list algorithm , 1977, WSC '77.

[44]  Bjarne Stroustrup,et al.  A set of c++ classes for co-routine style programming , 1987 .

[45]  Randy Brown,et al.  Calendar queues: a fast 0(1) priority queue implementation for the simulation event set problem , 1988, CACM.

[46]  Clark A. Crane,et al.  Linear Lists and Prorty Queues as Balanced Binary Trees , 1972, Outstanding Dissertations in the Computer Sciences.

[47]  Robert E. Tarjan,et al.  Data structures and network algorithms , 1983, CBMS-NSF regional conference series in applied mathematics.

[48]  Robert J. T. Morris,et al.  Interactive visual modeling for performance , 1991, IEEE Software.

[49]  D. Davey,et al.  Self-Optimizing Partitioned Sequencing Sets For Discrete Event Simulation , 1980 .

[50]  Robert E. Tarjan,et al.  Self-Adjusting Heaps , 1986, SIAM J. Comput..

[51]  Charles M. Shub,et al.  Discrete Event Simulation Languages , 1980 .

[52]  Donald B. Johnson,et al.  Priority Queues with Update and Finding Minimum Spanning Trees , 1975, Inf. Process. Lett..

[53]  K. Mani Chandy,et al.  A Message-Based Approach to Discrete-Event Simulation , 1987, IEEE Transactions on Software Engineering.

[54]  Jukka Teuhola,et al.  Priority Queue Administration by Sublist Index , 1979, Comput. J..

[55]  Jean Vuillemin,et al.  Description and analysis of an efficient priority queue representation , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[56]  James O. Henriksen,et al.  Event list management - a tutorial , 1983, WSC '83.

[57]  John T. Stasko,et al.  Pairing heaps: experiments and analysis , 1987, CACM.

[58]  Robert M. O'Keefe Comment on 'Complexity Analyses of Event Set Algorithms' , 1985, Comput. J..

[59]  William M. McCormack,et al.  Analysis of future event set algorithms for discrete event simulation , 1981, CACM.

[60]  Averill M. Law,et al.  Simulation Modeling and Analysis , 1982 .

[61]  Béla Bollobás,et al.  Repeated Random Insertion into a Priority Queue , 1985, J. Algorithms.

[62]  Ravi Sharma,et al.  Modular design for simulation , 1988, Softw. Pract. Exp..

[63]  Vernon Rego,et al.  A performance comparison of event calendar algorithms: An empirical approach , 1993, Softw. Pract. Exp..

[64]  Mary K. Vernon,et al.  The performance of multiprogrammed multiprocessor scheduling algorithms , 1990, SIGMETRICS '90.

[65]  Bernard P. Zeigler,et al.  Theory of Modelling and Simulation , 1979, IEEE Transactions on Systems, Man and Cybernetics.

[66]  Greg Lomow,et al.  A Tutorial Introduction To Object-Oriented Simulation And Sim++ , 1989, 1989 Winter Simulation Conference Proceedings.

[67]  G. Lomow,et al.  A tutorial introduction to object-oriented simulation and SIM+ + , 1989, WSC '89.

[68]  Robert E. Tarjan,et al.  Fibonacci heaps and their uses in improved network optimization algorithms , 1984, JACM.

[69]  C. A. R. Hoare,et al.  Quasiparallel programming , 1976, Softw. Pract. Exp..

[70]  Pierre L'Ecuyer,et al.  Efficient and portable combined random number generators , 1988, CACM.

[71]  Ole-Johan Dahl,et al.  Analysis of an algorithm for priority queue administration , 1975 .

[72]  Herb Schwetman,et al.  Using CSIM to model complex systems , 1988, 1988 Winter Simulation Conference Proceedings.

[73]  J. Banks,et al.  Discrete-Event System Simulation , 1995 .

[74]  Randall P. Sadowski,et al.  Introduction to Simulation Using Siman , 1990 .

[75]  Jean Vuillemin,et al.  A data structure for manipulating priority queues , 1978, CACM.

[76]  L. Devroye Non-Uniform Random Variate Generation , 1986 .