使用doSMP生成随机数

时间:2011-05-06 22:19:32

标签: r parallel-processing domc

我正在尝试使用doSMP包在R中进行并行编程。这里是我编写的代码片段,用于测试每个MC复制是否从同一种子开始,以及RNG是否会给出相同的数字 随机数字也是一样的。我希望每个MC复制都是随机的(我在run.MC.replicate中生成随机数)。我该如何解决这个问题?

par.mc.result<- foreach(mc =1:nmc,.packages=c("MASS") ) %dopar% {

    source("./src/simulation_math_util_fn.R")

    source("./src/oosMDS.R")
    source("./src/smacofM.R")
    source("./src/oosIM.R")
    sink(file=paste("debug",mc,collapse=""))
    print(runif(1))
            run.MC.replicate(myParams)

    }

我猜这种行为是因为doSMP生成子R进程的方式而发生的。 请帮忙

1 个答案:

答案 0 :(得分:3)

您需要适合并行计算的RNG。转到High Performance Computing Task View,然后查看并行计算:随机数部分。它列出了rsprngrlecuyer个包。