Summary: | Discrete-event simulation is a commonly used technique to model changes
within a complex physical systems as a series of events that occur at discrete points
of time. As the complexity of the physical system being modeled increases, the
simulator can reach a point where it is no longer feasible for it to run efficiently on one
computing resource. A common solution is to break the physical system into multiple
logical processes. When breaking a simulation over multiple computing nodes, care
must be taken to ensure the results obtained are the same as would be obtained from
a non-distributed simulation. This is done by ensuring that the events processed
in each individual logical process are processed in chronological order. The task is
complicated by the fact that the computing nodes will be exchanging timestamped
messages and will often be operating at different points of simulation time. Therefore,
highly efficient synchronization methods must be used. It is also important that the
logical processes have a capable means to transport messages among themselves or
the benefits of parallelization will be lost.
The objective of this dissertation is to design, develop, test, and evaluate tech-
niques to improve the performance of large-scale discrete-event simulations. The
techniques include improvements in messaging passing, state management, and time
synchronization. Along with specific implementation improvements, we also examine
techniques on how to effectively make use of resources such as shared memory and
graphical processing units.
|