SOTAVerified

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

2020-09-22SIMS Conference on Simulation and Modeling 2020Code Available1· sign in to hype

Jayanta Kshirsagar, Akshay Dewan, Harshal Ganpatrao Hayatnagarkar

Code Available — Be the first to reproduce this paper.

Reproduce

Code

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 that EpiRust could achieve following quality goals: 1. Robustness 2. Flexibility 3. Performance.

Tasks

Reproductions