2

我正在尝试使用 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 进程的方式。请帮忙

4

1 回答 1

3

您需要一个适合并行计算的 RNG。转到高性能计算任务视图并查看并行计算:随机数部分。它列出了rsprngrlecuyer包。

于 2011-05-06T22:24:03.110 回答