{"title":"Reproducible parallel simulation experiments via pure functional programming","authors":"Tom Warnke, A. Uhrmacher","doi":"10.1109/DS-RT47707.2019.8958655","DOIUrl":null,"url":null,"abstract":"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.","PeriodicalId":377914,"journal":{"name":"2019 IEEE/ACM 23rd International Symposium on Distributed Simulation and Real Time Applications (DS-RT)","volume":"23 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 IEEE/ACM 23rd International Symposium on Distributed Simulation and Real Time Applications (DS-RT)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/DS-RT47707.2019.8958655","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
Abstract
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.