ROSS is an acronym for Rensselaer’s Optimistic Simulation System. It is a parallel discrete-event simulator that executes on multiprocessor systems and/or supercomputers. ROSS is geared for running large-scale simulation models (millions of object models).
If you are currently developing a ROSS model and would like to request a new feature, please create an Issue on Github.
This release has some new features:
In addition to the git branching workflow development model, the ROSS project uses the Semantic Versioning model for version numbers. This helps with reproducibility of experiments detailed in publications and helps users ensure that they are using the correct version of ROSS, especially when using other software that depends on ROSS.
With PR #170 there is a new default clock based on the system
gettimeofdayfunction. This means that ROSS can function on any architecture, even if a processor-specific system clock is not implemented. More details on the
gettimeofdayfunction can be found on the linux man page.
Delta encoding provides a solution for models that contain events which are not well suited for using reverse computation or consumes significant amounts of memory (making copy-state approaches infeasible). Delta encoding solves this issue by only computing state change deltas once an event has completed execution. These deltas are then compressed for reduced storage overheads. In addition, delta encoding is done on a per-event basis allowing both reverse computation and delta encoding to be mixed within a single model. Overall, the delta encoding approach provides the benefits of incremental state-saving but without requiring the specific identification of which state elements change. This feature is further described in LaPre et al., 2015.
LP-level printing is available from the forward event handler. Models simply need to attach an output buffer to the event being processed, using the
tw_outputfunction. If this event is eventually committed, all attached output will be sent to standard-out.