如何使用doParallel在for循环中更新多个变量?

时间:2019-03-19 03:21:43

标签: r for-loop parallel-processing doparallel

我正在尝试使用R doParallel包来加速我的for循环。我的for循环更新了多个变量,目前我不知道如何调整doParallel设置才能做到这一点。

通过可复制的示例:

library("foreach")
library("doParallel")
no_cores <- detectCores() - 1
cl <- makeCluster(no_cores)
registerDoParallel(cl)
nloop <- 20
store <- rep(NA, nloop)
store2 <- rep(NA, nloop)
foreach (i = 1:nloop, .combine = "c") %dopar% {
  store[i] <- i
  store2[i] <- i*2
}
print(store)
print(store2)
stopCluster(cl)

我目前只能获取store2的值(或我最后输入的变量)。我尝试过将结果作为列表传递给诸如list(store, store2)之类的for循环命令的末尾,但这似乎也不起作用。任何指导将不胜感激。

0 个答案:

没有答案