원래 lapply나 sapply 쓰던 건
require(parallel) # R 2.15 인가 부터 기본으로 들어있다.
nthreads <- 6 # 최근 나온 쿼드코어면 4~6 정도 할당하면 된다. 하이퍼 스레딩으로 논리 코어가 여덜 개니까 그 중 6개 정도 사용.
system.time(result.list <- sapply(X=input.list, FUN = processingFunction) # 이런 식의 원래 처리를
system.time(result.list.p <- mclapply(X=input.list, FUN=processingFunction, mc.cores= nthreads) # 이렇게 병렬 철;
역시 2~3배 정도 빨라졌다. 이 mclapply 함수의 장점은, 별도로 다른 설정을 앞에서 해 줄 필요 없이, 그냥 쉽게 쓸 수 있다는 것. 현재 사용하는 기계 말고 별도로 클러스터를 만들어 쓸 때는 앞에 좀 복잡하게 뭘 붙이면, 쉽게 역시 클러스터 이용해서 작업할 수 있다.
병렬화에 재미 들렸다 요 며칠.