如何确保C ++中多线程模拟的一致性?

时间:2016-01-26 01:48:06

标签: c++ multithreading random gsl

为了运行时,我已经实现了一个多线程的模拟。然而,这导致我的不同运行之间的不一致,因为我使用RNG进行模拟。甚至认为RNG在线程中以相同的方式播种,即使GNU的gsl_rng应该是线程安全的(我认为是),看起来线程之间的某种形式的竞争条件导致一些在其他线程之前生成数字并且因此在各种运行之间存在小的差异。 我认为解决这个问题的一种方法是预先计算固定数量的随机数,然后手动将它们分配给线程。但是,存储随机数(大约数百万)会产生巨大的开销。 我想知道是否有更好的方法来应对这种竞争条件?

0 个答案:

没有答案