Я пытался сделать параллельный цикл, но я нашел R не может использовать все свои 8 ядер, он использует только 1 с этим кодом:не может использовать все ядра в R
library(parallel)
library(foreach)
library(doParallel)
no_cores <- detectCores() - 1
cl <- makeCluster(no_cores)
registerDoParallel(cl, cores = no_cores)
sum.of.squares <- foreach(i = 1:10e4, .combine = "+", .init = 0) %dopar% {
sqrt(i)
}
stopCluster(cl)
Он использует только около 13-15% процессора. Зачем?
Использование Windows 8.1 с R 3.2.1.
Что возвращает no_cores? – ddiez
@ddiez 7. Для меня есть минус один ядро. – m0nhawk
Обычная ваниль R не очень хороша при распараллеливании. Версия Revolution R использует все команды ядра * и * MMX для достижения 7x увеличения скорости на четырехъядерном процессоре i7 для 'svd' –