Я только начал вычислять в Parallel в R, чтобы оптимизировать свой код, и хотя я понимаю основную концепцию, у меня есть, казалось бы, простой вопрос, на который я не нашел ответа.
Если у меня есть цикл foreach из n итераций и m> n ядер, доступных на моем компьютере, ускорит мой код еще больше, если я выделил n + 1 или больше ядер для этого вычисления, в отличие от выделения n ядер?
library(doParallel)
library(foreach)
cl <- makeCluster(m) #using m cores
registerDoParallel(cl)
object <– foreach(i = 1:n, ...) %dopar% {
[...]
}
stopCluster(cl)
Я думаю, нет, но все сводится к тому, как foreach распространяет работу на ядра. Это одна итерация на ядро за раз, или работа делится еще дальше?
Спасибо.