每次我运行以下代码时,向量中的数字result_seq
保持不变,因为我set.seed(11)
在生成向量之前使用过。
但是,似乎即使我set.seed(11)
在生成 中的数字之前再次使用result_par
,每次运行代码时数字都会改变。
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)))
为什么会这样?我可以做些什么来确保在降雪并行化过程中生成的随机数是可重现的?