Как использовать doParallel для обновления нескольких переменных в цикле for? - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь использовать пакет 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 (или той переменной, которую я поставил последней). Я попытался передать результаты в виде списка в конце команд цикла for, таких как list(store, store2), но, похоже, это тоже не сработало. Любое руководство будет высоко ценится.

...