2013-08-13 4 views
3

Я пытаюсь ускорить медленную функцию auto.arima, запустив ее на компьютере с 4 двухъядерными процессорами (я использую Ubuntu 13.04 и R 2.15.2). Функция устанавливает временные ряды с 350 000 точек данных и примерно 50 экзогенных переменных. Я использую ниже кодauto.arima не распараллеливает

fit<-auto.arima(orders,xreg=exogen, stepwise=FALSE, parallel=TRUE, num.cores=4) 

Тем не менее, у меня есть несколько процессоров (каждый с несколькими ядрами), а не только один процессор с несколькими ядрами. В случае, если R был достаточно умен, чтобы обойти это ядро ​​/ процессоры дифференциации, я смотрел на моем мониторе ресурсов и увидел это:

enter image description here

, который показывает, что только CPU3 максимы вне.

Любые мысли о том, как их решить? Работает ли пакет forecast с DoSNOW?

+0

Какой у вас? Скорее всего, что-то не так с вашей параллельной средой, потому что большинство параллельных реализаций запускают код на одном ядре, если что-то не работает, например. mclapply переключается на lapply. В качестве обходного пути вы можете попробовать (используя пакет 'parallel') ' mclapply (order, auto.arima, xreg = exogen, stepwise = FALSE, parallel = FALSE, mc.cores = 2) ' – holzben

ответ

1

Попробуйте num.cores=8 и num.cores=7, используйте system.time(), чтобы узнать, с какого числа лучше ехать. Если я правильно помню, R обрабатывает 1 ядро ​​как один процессор. У вас есть 8 ядер, если я правильно понял вас: «4 двухъядерных процессора».

Смежные вопросы