Interpretation of the IEEE floating point standard is what makes it not end-to-end reproducible. Except for Intel – they don’t follow IEEE rules in fast mode.
Interestingly enough, the pseudo random number generator that we use actually generates identical output across Windows, Linux, and Mac with recent compiler versions.
In the past, I’ve actually been able to run end-to-end tests with seeds that work across Linux, Mac, and Windows. When I was building the service layer, I found that it’s really down to IEEE floating point rules. Once the hamiltonian trajectories are off slightly, even down to something like 1e-10, then over the next 100 iterations, they end up in different spots.