doMC 패키지

내가 분석하는 경우에 다중코어가 지원되는 경우가 거의 없어서 열심히 알아보지 않은 건데, 이번에 기계학습을 돌려보면서 꽤 빨라지는 것을 확인했다. 설정도 딱히 없다.

registerDoMC 명령어로 사용할 코어수를 설정하고, getDoParWorkers로 사용중인 코어수를 확인한다.

library(“doMC”)
registerDoMC(cores = 4)
getDoParWorkers()

그런데 여기서 문제가 생길 수도 있다.

내가 다중 코어를 이용하고자 하는 이유는 caret패키지를 이용해서 예측 모델 선정을 위한 것이다. caret 패키지와 관련된 자료를 검색해 보면 다음의 내용이 있다.

https://topepo.github.io/caret/model-training-and-tuning.html#the-traincontrol-function

trainControl과 관련된 것 중에서 allowParallel이 있는데 이게 기본적으로 True로 보인다.
trainControl function | R Documentation

설정 충돌인지 꼬인건지는 모르겠는데 registerDoMC(cores = 4) 이렇게 한참 진행하면 갑자기 느려지는 경우가 있다. 4C8H CPU에서 2500%를 찍는 이런 일이 생긴다. registerDoMC(cores = 1)로 설정을 해두어도 670% 정도로 여러 코어를 사용하는 것을 볼 수 있고, 속도가 제대로 나온다.

학습 모델에 따라서 코어 설정을 변경해 주는 것이 필요할 것 같다.