패키지 parallel
및 foreach()
기능으로 첫 걸음 만 내딛고 있습니다. 그러므로이 질문은 어리 석다. 이전 결과에 따라 for-loop 병렬 처리
간단한 예제가 될 것이다 다음 반복의 결과를 사용
- 객체
t
- 에 함수를 적용 :
newFunc<-function(){ test[i+1] <<- sqrt(test[i]) } test <- c(1,rep(NA, 10)) foreach(i=1:11, .combine='rbind', .export='test')%do% newFunc()
그래서 여기 내 작업은 내가 fullfil 할의 이것은 물론 for-loop로서 나에게 하나의 벡터를 생성합니다.
이test <- c(1,rep(NA, 10)) library(doParallel) library(foreach) cl <- makeCluster(4) registerDoParallel(cl) foreach(i=1:11, .combine='rbind', .export='test')%dopar% newFunc() stopCluster(cl)
이 출력
c(1, NA, NA, NA, NA, ..., NA)
나를 잎 :이 parallelise하려고하면 그러나, 이것은 다른 결과를 얻을 수 있습니다. 내가 같아요 이것은 노예가 다른 기능의 결과를 모르기 때문에입니까? 필요한 정보를 제공했으면합니다. 내 실제 기능은 물론 더 복잡하지만,이 예제는 내 문제를 증명하는 가장 쉬운 방법으로 보였다.편집 : 제 생각에는 첫 번째 질문은 다음과 같습니다. 이러한 문제는 전혀 병렬 처리 될 수 있습니까?
이해가 안됩니다. 반복의 각 단계가 이전 단계에 의존하면 병렬로 수행 할 수 없습니다. – Roland
알았어. 내 질문에 이미 대답 한 것 같아! 고마워 – Seb