/da-simulator

A simulator for distributed algorithms in arbitrary networks

Primary LanguageRustMozilla Public License 2.0MPL-2.0

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
  • 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 running rustup 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

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.