Some years ago, I got interested in this problem, introduced in Go by Rob Pike (google “chinese whispers golang” to get the go version, as I can not include more that 2 links). The version quoted there still compiles and work with current go (but slower, see below).
Some Rust versions and discussions emerged :
I played a bit with that (back in 2014), trying different things notably for the threads (there were several threads variants in Rust at that time IIRC).
I would like to make that work again with a recent Rust, but as I have not been able to follow evolutions for a long time, I am a bit stuck. I would be very glad to get a working version, that could be considered “state of the art with Rust 1.30” in terms of threading use, and able to work efficiently with 100000 or 200000 whispers (the go version is running in around 0.9s for 100000 on my laptop, quite longer than 0.3s given in the blog article). I remember that in my old tests, going further than 20000 or 30000 was quite hard and implied doing things like tuning stack_size.
Many thanks for any help, it will be much appreciated!