da-simulator
is a highly parallel simulator capable of running arbitrary distributed algorithms of various models of computation (PN, LOCAL, CONGEST) on networks constructed from arbitrary graphs.
- Highly versatile
- Supports algorithms in PN, LOCAL and CONGEST models
- Algorithms follow the formal distributed algorithm definition (Section 3.3)
- Network output in Graphviz DOT format
- Deadlock detection and prevention
- Communication round limiting
- Thread-per-node architecture
- (Relatively) easy to debug™
- Written in 100% safe Rust
Note:
da-simulator
currently requires nightly Rust, see #63063. Hint: you can switch to the nighly channel by runningrustup default nightly
.
Select (or define) a network and an algorithm to simulate on that network in main.rs
, then just run compile and run the application:
cargo run --release
- Dennis Marttinen (@twelho)
Mozilla Public License Version 2.0 (LICENSE)
Special thanks to Jukka Suomela for the amazing Distributed Algorithms course for which this simulator has been developed for and from where the algorithms it simulates are sourced from.