Konferensartikel

EpiRust: Towards A Framework For Large-scale Agent-based Epidemiological Simulations Using Rust Language

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/ecp20176475

Ingå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

Visa mer +

Publicerad: 2021-03-03

ISBN: 978-91-7929-731-2

ISSN: 1650-3686 (tryckt), 1650-3740 (online)

Abstract

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.

Nyckelord

agent-based modeling, agent-based simulations, epidemiology, large-scale simulations, Rust language

Referenser

Inga referenser tillgängliga

Citeringar i Crossref