Random 寻找对松本的需求的证明';并行PRNG中的s-DCMT算法

Random 寻找对松本的需求的证明';并行PRNG中的s-DCMT算法,random,parallel-processing,mersenne-twister,Random,Parallel Processing,Mersenne Twister,在本文中,Matsumoto和Nishimura警告不要出于并行模拟的目的对MT PRNG进行粗心的初始化,因为并行模拟假设来自不同发生器的流的数量彼此独立: 并行机中PRNG的常用方案是对每个进程使用一个相同的PRNG,初始种子不同。但是,此过程可能会产生严重冲突,特别是如果生成器基于线性递归,因为在这种情况下,两个伪随机序列的总和满足相同的线性递归,并且可能出现在第三个序列中。如果与状态空间的大小相比,并行流的数量变大,则危险变得不可忽略 要使这成为一个严重的问题,流的数量必须有多大?在标准

在本文中,Matsumoto和Nishimura警告不要出于并行模拟的目的对MT PRNG进行粗心的初始化,因为并行模拟假设来自不同发生器的流的数量彼此独立:

并行机中PRNG的常用方案是对每个进程使用一个相同的PRNG,初始种子不同。但是,此过程可能会产生严重冲突,特别是如果生成器基于线性递归,因为在这种情况下,两个伪随机序列的总和满足相同的线性递归,并且可能出现在第三个序列中。如果与状态空间的大小相比,并行流的数量变大,则危险变得不可忽略

要使这成为一个严重的问题,流的数量必须有多大?在标准机器翻译MT19937的情况下,状态空间相当大。。。我可以肯定地看到有一个模219937的线性关系−在20000个序列中有1个,但是在400个序列中有一个生日悖论式的关系呢


这似乎实际上是一个严重的问题,因为并行PRNG实现确实包括,但最好有一些失败的例子,以及当这成为一个问题时的一些意义。

对此问题进行了讨论

取MT空间中“相距遥远”的两条流,它们的和也满足 复发。因此,对第三条流的担忧不仅仅是 关于与前两个流的相关性或重叠,但是, 根据应用程序的不同,还应考虑与以下各项之和的相关性/重叠 前两条溪流。移动到N个流,则有O(N**2) 直接求和,然后求和,然后

仍然不会对我的统计预期寿命造成问题,但我 只有4芯;-)

所以这比生日悖论更糟糕。实际上,log(状态空间大小)/log(2)序列很可能会出现问题,对于标准MT,这大约是14个序列