Reproducible parallel simulation experiments via pure functional programming - Warnke, Tom; Uhrmacher, Adelinde M. (2019 IEEE/ACM 23rd International Symposium on Distributed Simulation and Real Time Applications (DS-RT), 2019)
Due to the increasing complexity of simulation models, the experiments conducted with these models become more complex as well. To date, software support for reproducible complex simulation experiments is constrained to specific application domains and experiment types. As a step towards a one-size-fits-all solution, we express simulation experiments as pure functions. With random number generation wrapped in the state monad, we achieve bit-level reproducibility of simulation results even for complex experiment setups. Additionally, we show how simulation runs can be executed in parallel without jeopardizing reproducibility. While the approach is independent of concrete simulation backends, we illustrate it by using NetLogo in various complex simulation experiments, utilizing design of experiments, simulation-based optimization, and statistical model checking.