Jayanta K. Kshirsagar
Engineering for Research, ThoughtWorks Technologies, Pune, India
Akshay Dewan
Engineering for Research, ThoughtWorks Technologies, Pune, India
Harshal G. Hayatnagarkar
Engineering for Research, ThoughtWorks Technologies, Pune, India
Ladda ner artikelhttps://doi.org/10.3384/ecp20176475Ingår i: Proceedings of The 61st SIMS Conference on Simulation and Modelling SIMS 2020, September 22-24, Virtual Conference, Finland
Linköping Electronic Conference Proceedings 176:67, s. 475-482
Publicerad: 2021-03-03
ISBN: 978-91-7929-731-2
ISSN: 1650-3686 (tryckt), 1650-3740 (online)
To implement large-scale agent-based simulations, developers historically relied on C and C++ due to performance, while struggling to deal with tedious explicit memory management. This struggle translates into software defects and lower developer productivity. More recently, desire to harness multi-core systems via concurrent software complicates design and implementation when memory is shared among compute cores. When we faced this situation, we were looking for a system programming language as fast as C and C++ but without caveats around memory management. Between Go and Rust, we chose Rust language which guarantees safety in memory management even for concurrency, without a run-time or garbage collector. In this paper, we have shared our experience with Rust to build a framework named as EpiRust for agent-based epidemiological simulations. Our simulation experiments have shown some promising results for a population of a few million agents, using commodity-class hardware. Key outcomes of this whole exercise are thatEpiRust could achieve following quality goals: 1. Robustness 2. Flexibility 3. Performance.
agent-based modeling, agent-based simulations, epidemiology, large-scale simulations, Rust language
Inga referenser tillgängliga