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