使用foreach并控制多个核心并行运行多个R脚本
问题描述:
我在一个文件夹中有五个R脚本,并且我想并行运行所有这些R脚本,控制可用的内核数量。使用foreach并控制多个核心并行运行多个R脚本
你有什么建议吗?我试图用这种方式使用“foreach”包,但它不起作用。
files<-list.files(pattern=".R")
foreach(x=files) %dopar% {
source(x)
}
答
您注册了并行后端吗?如果它是单个系统,那么使用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)
我测试了你的脚本,但没有奏效。 –
错误或问题是什么?您是否已经安装了doparallel软件包? –