codes-org / codes

The Co-Design of Exascale Storage Architectures (CODES) simulation framework builds upon the ROSS parallel discrete event simulation engine to provide high-performance simulation utilities and models for building scalable distributed systems simulations
Other
40 stars 16 forks source link

Deterministic tiebreaker compatibility #212

Closed nmcglo closed 1 year ago

nmcglo commented 3 years ago

This updates the functionality of CODES' RC stack to be compatible with the latest development changes in the ROSS engine. ROSS now makes event ties statistically impossible by adding a behind-the-scenes tiebreaker value that is generated at random from an isolated RNG stream.

This will mean that adding random dithers to new events at the model level to avoid event ties will no longer be necessary. This makes model development, including reverse computation, a lot simpler. Additionally virtual time based metrics will no longer be influenced by random noise that was added to avoid event ties.

This PR allows current CODES to run with the new ROSS feature but does not do the work to remove random noise from all of the models in the codebase.

nmcglo commented 3 years ago

Note - this should not be merged until ROSS has incorporated the deterministic tiebreaker to mainline. Additionally, the API for comparing timestamps may also change during that merge so this PR will likely also need to be altered respectively.