Further investigation shows that the ''data type used for computation'' plays a crucial role. The (recommended) 64bit mersenne twister uses the full value range of the working data type, which on a typical 64bit system is also `uint64_t`. In this case, values corrupted by concurrency go unnoticed. This can be **verified empirically** : the distribution of shifts from the theoretical mean value is in the expected low range < 2‰ However, when using the 32bit mersenne engine, the working data type is still uint64_t. In this case a **significant number of glitches** can be shown empricially. When drawing 1 Million values, in 80% of all runs at least one glitch and up to 5 glitches can happen, and the mean values are **significantly skewed**
8 MiB
8 MiB
| The file is too large to be shown. |