使用foreach和控制核心数并行运行多个R脚本

时间:2017-04-21 16:29:20

标签: r parallel-processing

我在一个文件夹中有五个R脚本,我想并行运行所有这些R脚本,控制可用内核的数量。

你有什么建议?我试图以这种方式使用“foreach”包但它没有用。

files<-list.files(pattern=".R")

foreach(x=files) %dopar% {
        source(x)
      }

1 个答案:

答案 0 :(得分:0)

您是否注册了并行后端?如果它是单个系统,那么首先使用doParallel包来注册后端。试试这个;

cl = makeCluster(detectCores() - 1)
registerDoParallel(cl)

files<-list.files(pattern=".R")

foreach (i in 1:length(files), .export = c("files")) %dopar%
 {
 source(files[i])
 }

stopCluster(cl)