我正在尝试使用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进程的方式而发生的。 请帮忙
答案 0 :(得分:3)
您需要适合并行计算的RNG。转到High Performance Computing Task View,然后查看并行计算:随机数部分。它列出了rsprng和rlecuyer个包。