这是一个非常普遍的问题,大多只是概念上的问题。我正在考虑测试随机数生成器,以查看其在某些x值(如掷骰子的前6位)上的均匀分布的有效性。在一个简单的循环中这样做是我现在拥有它,但我正在考虑多线程仿真。带信号量和伪随机数的概念多线程
我想知道这是否会给我任何加速,因为我将只有一个随机数生成器在信号量保护的所有线程之间共享(需要确保没有两个线程访问并且同时生成随机数意味着重复结果)。由于每个线程几乎不会有其他操作(只要用于检查和增加x的语句)会对它进行线程化,甚至会给我更快的结果,或者对一个随机数生成器的依赖性意味着它将基本上与单个相同线?
非常棒的建议,从结果处理中分离出rng。不完全确定我将如何使用1 rng来模拟多个卷,而不会与分配有关。我从来没有使用过一个分析器,需要一个借口来启动,我认为不应该使用它作为一个,谢谢。 – forTruce 2012-02-28 16:18:54
只是一个简单的例子:如果您生成的数字从1到6,则每个数字只需要3位。如果您的RNG生成32位值,则可以从每个值中获得10组3位。 – 2012-02-28 16:23:40
我真的怀疑你会看到在另一个线程中运行RNG的速度提升。同步随机数队列的开销远远超过任何好处。 – Gray 2012-02-28 16:45:35