|
The Synchronous Parallel Environment for Emulation and Discrete-Event
Simulation (SPEEDES) simulation engine allows the simulation builder
to perform optimistic parallel processing on high performance
computers, networks of workstations, or combinations of networked
computers and HPC platforms. Applications that can make use of
SPEEDES are typically time-constrained (too many events to process in
a limited amount of time). SPEEDES is also designed to implement High
Level Architecture (HLA) federations of simulations.
What are the benefits?
SPEEDES-based object-oriented simulations that run on High Performance
Computing (HPC) platforms are able to address extremely complex
problems and still maintain short run times. Where 'real time'
simulation is required, as in wargames or training, SPEEDES optimistic
processing capability minimizes simulation lag time behind wall clock
time (real time).
Likewise, when fast completion of a virtual time simulation run is
needed, SPEEDES accommodates increases in problem complexity with
additional parallel computing nodes (CPUs or cores).
How does SPEEDES work?
SPEEDES allocates events over multiple processors to get simulation
speed-up. This characteristic improves runtime, especially when
exploiting the very large number of processors and the high-speed
internal communications found in HPC platforms. At the heart of
SPEEDES is a set of innovative optimistic-processing algorithms
patented by NASA. These algorithms allow each processor to race
ahead with an assigned set of events, create messages, etc. without
regard to processing on other CPUs. Then, anytime a 'straggler'
message arrives at a CPU that invalidates the processing that has been
going on at that CPU, the processing is rolled back.
For many simulation objects, their state changes at a much lower
frequency than the frequency of events that make use of the
object. SPEEDES Version 2.0 uses a scheme that reduces the
message traffic between CPUs by establishing object proxies at CPUs
that need access to those objects' states, and requiring inter-CPU
messages only when the proxy state needs to be updated because of a
change to the object it represents. Also, object subscribers may not
need all the state data from a particular object proxy. SPEEDES
Version 2.0 uses an optimization scheme whereby proxies can dynamically
subscribe either to entire objects, or only to attributes that are of
interest to them.
SPEEDES is described in the
SPEEDES User's Guide
and
SPEEDES API Reference Manual,
both of which
are available from the
documentation
page.
Who uses SPEEDES?
SPEEDES is used
SPEEDES is also under consideration by over thirty
organizations.
|
|