如何在 foreach 中为每个并行模拟的开始导出全局环境?以下代码是被调用以运行模拟的函数的一部分。
num.cores <- detectCores()-1
cluztrr <- makeCluster(num.cores)
registerDoParallel(cl = cluztrr)
sim.result.list <- foreach(r = 1:simulations,
.combine = list,
.multicombine = TRUE,
) %dopar% {
#...tons of calculations using many variables...
list(vals1,
vals2,
vals3)
}
stopCluster(cluztrr)
是否有必要将 .export 与我使用的每个变量和函数的字符向量一起使用?执行时间会很慢吗?
最佳答案
如果 foreach 循环在全局环境中,变量应该自动导出。如果没有,您可以使用 .export = ls(globalenv())
(或 .GlobalEnv
)。
对于来自其他包的函数,您只需要使用语法 package::function
.
关于r - 如何将多个变量和函数从全局环境导出到 foreach 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45767416/