r - 如何将多个变量和函数从全局环境导出到 foreach 循环?

标签 r foreach parallel-processing global-variables doparallel

如何在 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/

相关文章:

r - 使用 dplyr 按名称从列表中提取

r - R中多个列和多行的表频率

r - geom_statdensity2d 具有特定的轮廓?

c# - .Net 列表 ForEach Item

php - IE7 中 foreach 循环中的文本大小增加

c++ - OpenMP 和 C++ 并行 for 循环 : why does my code slow down when using OpenMP?

python - 如何在 Flask 中并行化任务?

报告矩阵中各列的相同值

php foreach 遍历一个数组并赋值这个数组

concurrency - 为什么带有填充字段的结构工作得更快