There are a number of reasons to connect simulators together, such as for performance and scalability.
The simulations may be distributed across multiple computers to utilize compute-resources and memory from all of them.
Other reasons include, for example, when some models may exist in a specialized simulator, but are not available on
another required simulators. A collection of simulators working together is called a Federated Simulation or
Simulator Federation.
There are a variety of ways to inter-connect simulators. If the data dependency between simulators is in
one-direction, it may be possible to run the simulators separately and
communicate the data between them through files. This is sometimes called a static simulator interconnection
because the data dependency is fixed and pre-determined.
The results of the first simulator are stored in files, and provided to the second simulator when needed.
If its input does not change, the first simulator may be run only once, while the second simulator can re-use the
data for many different runs. There are a variety of tools for managing static simulator federations, such as make.
When simulators (or the models within them) are interdependent on other simulators for data, the simulators must be connected to each other
as they run. Events in one simulator may affect events in the other, and vice-versa. This is known as a
dynamic simulator interconnection, because the data dependencies are not predetermined and happen at run-time.
CSIM supports several methods for interconnecting simulators or forming dynamic federations, as listed below:
Dynamic Distributed Simulation Methods:
- Wormhole Model
- Simple direct socket interface between simulators.
- HLA (High Level Architecture) Interface
- DMSO/MSCO developed IEEE standard backplane for simulator interconnect.
- DIS (Distributed Interactive Simulation) - A predecessor to HLA. Provides interconnection only for
real-time simulations, but is still widely used.
- MSI (Multi-Simulator Interface)
- General purpose lightweight efficient portable free open alternative to HLA.
The first one, Wormhole Model is a simple way to pass data between specific pairs of simulators.
Any number of wormhole-boxes may be included in each simulation, but each one connects to a corresponding
wormhole in another simulator. This is an easy way to connect a small number of CSIM simulations.
It can be used to connect to non-CSIM simulators as well, because the wormhole method uses a simple documented
socket interface that is easily implemented in many other environments.
The other three methods HLA, DIS, and MSI enable larger scale federations among an arbitrary number and type of simulators.
There are also a variety of general process-connect environments that have been used to pass data between tools.
However, many of these do not provide methods to synchronize timing or enforce causality between events, and so are not
appropriate for interconnecting simulators - especially for federations with non-real-time clocks.