Multicore 사용하기 - foreach
여러 방법이 있지만... doSNOW 패키지를 쓰는 방법을 권장해드립니다. #라이브러리 불러오기 suppressMessages({ library(doSNOW) library(foreach) }) #코어 등록하기(3개 기준) c1=makeSOCKcluster(3) registerDoSNOW(c1) # 프로그래스바를 만들고(.options.snow로 가는 것을 잘 보세요) # .packages로 패키지를 코어로 내리고 # .export로 데이터도 코어로 내립니다. pb <- txtProgressBar(max=100, style=3) progress <- function(n) setTxtProgressBar(pb, n) opts <- list(progress=progress) r <- foreach(i=1:100, .options.snow=opts, .packages=c("dplyr","foreach"), .export=c("my_function","my_variable")) %dopar% { Sys.sleep(1) sqrt(i) } close(pb) stopCluster(c1) 자... 사용법은 꽤나 간단하죠? 주의할 점이 있습니다. 각각의 core에 데이터를 내려 줄 때 메모리 걱정을 좀 하셔야 합니다. 간단한 계산을 여러 코어에 나눠 하실 때는 도움이 되지만 너무 많은 코어를 쓰면 메모리가 다 없어질 수도 있습니다. 그리고 등록된 cluster는 반드시 stopCluster()로 해제해 주세요. 잊어버리시면 안됩니다.