2013-08-13 2 views
3

나는 느린 auto.arima 기능을 4 개의 듀얼 코어 CPU (우분투 13.04와 2.15.2를 사용하고있다)가있는 컴퓨터에서 실행함으로써 속도를 높이려고한다. 이 함수는 350,000 개의 데이터 포인트와 대략 50 개의 외생 변수를 갖는 시계열에 적합합니다. 아래 코드를 사용하고 있습니다.auto.arima not parallel

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

그러나 여러 개의 코어가있는 CPU 하나가 아닌 여러 개의 CPU가 있습니다. 경우 R이 코어/CPU의 차별화를 해결하기에 충분 똑똑, 내 리소스 모니터를보고했고 이것을보고 : 만 CPU3이 끝나가는 것을 보여줍니다

enter image description here

.

해결 방법에 대한 의견이 있으십니까? forecast 패키지가 DoSNOW과 작동합니까?

+0

어떤 패키지를 사용하고 있습니까? 대부분의 병렬 구현은 무언가가 작동하지 않는 경우 하나의 코어에서 코드를 실행하기 때문에 병렬 환경에 문제가있을 가능성이 큽니다. lapply로 mclapply 전환합니다. 해결 방법 :'parallel' 패키지를 사용하십시오. 'mclapply (order, auto.arima, xreg = exogen, stepwise = FALSE, parallel = FALSE, mc.cores = 2)'시도해 볼 수 있습니다. – holzben

답변

1

num.cores=8num.cores=7을 시도해보십시오. 어느 것이 더 빠르게 실행되는지 보려면 system.time()을 사용하십시오. 내가 올바르게 기억하면, R은 1 개의 코어를 하나의 CPU로 취급합니다. 내가 정확히 이해한다면 8 개의 코어가 있습니다 : "4 개의 듀얼 코어 CPU".