【发布时间】:2021-05-31 05:02:04
【问题描述】:
每次运行以下代码时,向量result_seq 中的数字保持不变,因为我在生成向量之前使用了set.seed(11)。
然而,似乎即使我在生成result_par 中的数字之前再次使用set.seed(11),但每次运行代码时数字都会改变。
library(snowfall)
snowfall::sfInit(parallel = TRUE, cpus = 4)
testFun = function(i) {
result <- rnorm(1,10,3)
}
nsim <- 10
set.seed(11)
result_seq <- sapply(1:nsim, testFun)
print(mean(result_seq))
set.seed(11)
result_par <- sfLapply(1:nsim, testFun)
print(mean(as.numeric(result_par)))
为什么会这样?如何确保在降雪并行化过程中生成的随机数是可重现的?
【问题讨论】:
标签: r parallel-processing snow snowfall