2014-06-23 2 views
0

에 R에서 중첩 된 병렬을 실현하기 위해 내 프로그램에서 방법 Windows 플랫폼

cl <- makeCluster(16) 
cl.boot <-makeCluster(8) 

R.

병렬 패키지에 parApply()를 사용하려고, 내가 먼저 t(parApply(cl,rv,1,sim.one.test))를 호출합니다. 함수 sim.one.test에서 함수 boot()을 호출하십시오. 그리고 boot()에, 나는
bs.resample <- t(parApply(cl.boot,rv.boot,1,function(x) bs.mle(n1,n2,x,s,t1,t2,m,theta))) 

은 단순히 외부 함수가 sim.one.test()하고 내부 사람이 bs.mle()입니다 사용합니다. 오류 정보는 invalid connection입니다. 내포 된 병렬이 지원되지 않기 때문입니다. questions에서 stackoverflow에, 나는 리눅스에서만 적용될 수있는 mcapply()을 사용해야한다고 제안되지만 Windows 플랫폼에서 프로그램을 실행합니다. Windows 플랫폼에서 중첩 병렬 컴퓨팅을위한 솔루션이 있습니까? 감사.

답변

1

왜 중첩 병렬화가 필요하다고 생각하십니까? 그렇게하면 병렬화 오버 헤드가 증가합니다 (전혀 작동하지 않는다면 의심 스럽습니다). 개념적으로, 외부 루프를 병렬화하는 것이 훨씬 낫습니다 (충분한 반복을 포함하고 어느 정도로드 균형이 잡힌 경우).

그러나 병렬 백엔드와 함께 nested foreach loops을 사용할 수 있습니다. 그러면 중첩 된 루프가 하나의 루프로 변환되어 작업자에게 전송됩니다.