У меня есть длинный список больших матриц (или растров), которые я хочу суммировать параллельно. На выходе должна быть матрица. Я пробовал foreach
использовать .combine='+'
функцию, которая работает, но кажется, что .combine работает только в одном потоке, поэтому нет ускорения. Какие-либо предложения? Спасибо
matrix.list <- list()
for(i in 1:10000) matrix.list[[i]] <- matrix(1,nrow=100,ncol=100)
library(foreach)
library(doMC)
registerDoMC(cores=2)
matrix.sum <- foreach(i=1:10000,.combine='+') %dopar% matrix.list[[i]]
Reduce('+', matrix.list)
работало примерно в 18 раз быстрее, чем приведенный выше код. - person jav   schedule 07.09.2016