da-simulator
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.
Features
- 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
Usage
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
Authors
- Dennis Marttinen (@twelho)
License
Mozilla Public License Version 2.0 (LICENSE)
Acknowledgements
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.