Я запускаю случайный лес в R параллельно
library(doMC)
registerDoMC()
x <- matrix(runif(500), 100)
y <- gl(2, 50)
Параллельное выполнение (заняло 73 секунды)
rf <- foreach(ntree=rep(25000, 6), .combine=combine, .packages='randomForest') %dopar%
randomForest(x, y, ntree=ntree)
Последовательное выполнение (занимает 82 секунды)
rf <- foreach(ntree=rep(25000, 6), .combine=combine) %do%
randomForest(x, y, ntree=ntree)
При параллельном выполнении генерация дерева довольно быстрая, как 3-7 секунд, но остальное время потребляется при объединении результатов (опция комбинирования). Таким образом, единственное, что стоит выполнить параллельное выполнение, - это количество деревьев, которые действительно высоки. Есть ли способ, который я могу настроить "объединить", чтобы избежать любых вычислений на каждом node, который мне не нужен, и сделать его быстрее
PS. Выше - всего лишь пример данных. В реальности у меня есть около 100 тысяч функций для 100 наблюдений.