Introduction
Sim0MQ makes use of the ØMQ (or 0MQ or ZMQ) message bus, and contains a layer of simulation-specific components and messages to aid in
creating distributed simulation execution. The Sim0MQ message bus is a fast messaging protocol to create loosely coupled simulations.
- Sim0MQ uses the 0MQ protocol as its basis, enabling up to 2 million messages per second.
- Sim0MQ provides low-level binary messages for fast message exchange.
- Sim0MQ provides structured binary messages for more controlled message exchange.
- Sim0MQ will be enabled with an IDL-type feature to generate message stubs automatically.
- Sim0MQ can be used with any language that 0MQ supports: Java, C, C++, C#, Python, and a few dozen more.
- Sim0MQ works in a brokerless fashion due to the nature of the underlying 0MQ protocol.
- Sim0MQ uses DJUNITS for a strongly typed unit system for values. A length scalar cannot be added to a time scalar; if
length is divided by time, a speed variable results. This is all checked at compile time rather than at run time.
- Sim0MQ can be linked to DSOL as the underlying, powerful simulation platform. DSOL takes care of time advance mechanisms,
discrete-event and continuous simulation, random streams, probability distribution functions, experiment management, etc.
Origin
SIM0MQ was developed at the Delft University of Technology as part of the
Open Traffic Simulator project (started in 2014).
In November 2016 it became obvious that the simulation message bus developed for the Open Traffic Simulator were sufficiently mature to be used in
other projects.
The main authors/contributors of the SIM0MQ project are Alexander Verbraeck, Peter Knoppers, Wouter Schakel, and Sibel Eker.
Manual
The latest version of the manual can be found here: Sim0MQ Manual (PDF document).
Documentation
Documentation can be found at http://sim0mq.org/docs/current.
More information about 0MQ / ZeroMQ
More information about ZeroMQ can be found on the 0MQ Website.