第一次在這裏發佈海報。在發佈之前,我閱讀了常見問題和發佈指南,因此我希望我能以正確的格式發佈我的問題。使用doParallel集羣(R)在foreach()中發生未知錯誤(工作器初始化失敗:21)
我正在使用R 64位控制檯v 3.1.2中的doParallel集羣后端運行foreach()任務。在Windows 8上。相關軟件包是foreach v。1.4.2和doParallel v。1.0.8。
一些示例代碼,給你的,我做什麼的想法:
out <- foreach (j = 1:nsim.times, .combine=rbind, .packages=c("vegan")) %dopar% {
b<-oecosimu(list.mat[[j]], compute.function, "quasiswap", nsimul=nsim.swap) ## where list.mat is a list of matrices and compute.function is a custom function
..... # some intermediate code
return(c(A,B)) ## where A and B are some emergent properties derived from object b from above
}
在我的任務之一,我遇到了我以前從未見過的錯誤。我試圖在網上搜索錯誤,但無法找到任何線索。
錯誤是:
Error in e$fun(obj, substitute(ex), parent.frame(), e$data) :
worker initialization failed: 21
在有一次我得到這個錯誤,我停止以前的任務(使用R中控制檯停止按鈕)之後,但沒有通過「關閉集羣運行的代碼STOPCLUSTER ()」。
在通過'stopCluster()'停止集羣並註冊一個新集羣'makeCluster()'和'registerDoParallel()'後,我再次運行相同的代碼,任務運行正常。
有沒有人遇到這個錯誤,或者可能有任何線索/提示,我如何才能找出問題?錯誤可能與不停止以前的doParallel集羣有關嗎?
任何幫助或建議非常感謝!
乾杯和謝謝!