3 ms·
If your random numbers are generated with a fixed seed and the algorithm runs for a deterministic number of steps (e.g. not using a wall-clock timeout) then the
by johntb86 10y ago
If your random numbers are generated with a fixed seed and the algorithm runs for a deterministic number of steps (e.g. not using a wall-clock timeout) then the output should be deterministic.
One potential for nondeterminism is if the compiler or linker is multithreaded, and multiple threads could update a shared data structure in no fixed order.
- metaphor 10y agoOP actually pointed to an interesting reference[1] which briefly touches on the impact of pseudo-random number generation, amongst other things. Diving a little bit deeper down the same rabbit hole, David A. Wheeler[2] (as he emphatically insists on being cited) also made note of threads with non-deterministic scheduling. Lots of notes on hardware-centric implications as well. Definitely turns my perspective around on what it means to trust software. I suppose the effort is a proper graduation from masturbating[3] to safe sex, so to speak. [1] https://reproducible-builds.org/docs/ https://reproducible-builds.org/docs/ [2] http://www.dwheeler.com/trusting-trust/ http://www.dwheeler.com/trusting-trust/ [3] https://www.youtube.com/watch?v=4XpnKHJAok8&feature=youtu.be&t=1664 https://www.youtube.com/watch?v=4XpnKHJAok8&feature=youtu.be...