ROOT-Sim

The ROme OpTimistic Simulator: Multithreaded Parallel Discrete Event Simulator

View project on GitHub

Version 2.0.0 released

We are proud to announce the release of ROOT-Sim version 2.0.0!

This release significantly increases the quality of the code base, which is now cleaner and much more documented.

Additionally, a precise workflow for contributing to the project has been implemented. Check the docs/CONTRIBUTING.md file in the source tree if you are interested in contributing to ROOT-Sim.

The following new features have been added to this release:

  • Asynchronous MPI support: ROOT-Sim can now go (again) distributed using bleeding facilities from the MPI3 standard, such as multithreaded support and asynchronous communication primitives for GVT computation.
  • ABM Support: A new set of semantically rich API has been added to ROOT-Sim. This API significantly simplifies the development of Agent-Based Models, and transparently supports all the activities required to support rollback and restore of simulation objects. The model can specify portions of the state of a simulation object which must be transparently synchronized with other LPs in the system, also on remote distributed nodes.
  • Topology library: The topology library has been significantly enhanced. New topologies have been added. In particular, it is now possible to specify arbitrary topologies, represented as graphs with edges which carry either a probability or a weight. These values are used by API functions such as FindReceiver()to find the destination of a message. Topologies can change at any time during simulation, and they are transparently rolled back if needed.
  • JSON-based configuration of models: A JSON parser has been introduced in the library. This can be used to configure, e.g., custom topologies. Also, simulation models can lever this parser to implement their own configuration files.

Some subsystems have been temporarily disabled in this release, to simplify the release cycle. They will be re-added in the upcoming releases.

See ChangeLog for all updates shipping with this new version.