Köster, Till and Warnke, Tom and Uhrmacher, Adelinde M. (2020) Partial evaluation via code generation for static stochastic reaction network models. In: ACM SIGSIM Conference on Principles of Advanced Discrete Simulation (PADS 2020), 15-17 Jun 2020, Miami, Florida, USA. Proceedings, published by ACM, New York, USA, pp. 159-170.
Full text not available from this repository.Abstract
Succinct, declarative, and domain-specific modeling languages have many advantages when creating simulation models. However, it is often challenging to efficiently execute models defined in such languages. We use code generation for model-specific simulators. Code generation has been successfully applied for high-performance algorithms in many application domains. By generating tailored simulators for specific simulation models defined in a domain-specific language, we get the best of both worlds: a succinct, declarative and formal presentation of the model and an efficient execution. We illustrate this based on a simple domain-specific language for biochemical reaction networks as well as on the network representation of the established BioNetGen language. We implement two approaches adopting the same simulation algorithms: one generic simulator that parses models at runtime and one generator that produces a simulator specialized to a given model based on partial evaluation and code generation. Akin to profile-guided optimization we also use dynamic execution of the model to further optimize the simulators. The performance of the approaches is carefully benchmarked using representative models of small to mid-sized biochemical reaction networks. The generic simulator achieves a performance similar to state of the art simulators in the domain, whereas the specialized simulator outperforms established simulation algorithms with a speedup of more than an order of magnitude. Both implementations are available online to the community under a permissive open-source license.
Item Type: | Conference or Workshop Item (Paper) |
---|---|
Projects: | ESCeMMo |