Reproducibility across machines

It is very difficult to get exactly the same traces for different machines. In the test suite, we run a test to check if the step methods (e.g. NUTS, metropolis, SMC, etc) give a trace that “matches” the trace we expect to see. This match is not an absolute equality match (assert all(x == y)) but a more relaxed match (np.allclose) with a tolerance that depends on the floating point precision being used. With that said, across different machines there are some small differences in the traces, and as the sampling progresses, these differences may pile up and lead to very different traces at the end.