XG_*_*_23 4 parallel-processing foreach r
这是第一次发布的海报.在发布之前,我按照推荐阅读常见问题和发布指南,所以我希望我以正确的格式发布我的问题.
我在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
}
Run Code Online (Sandbox Code Playgroud)
在我的一个任务中,我遇到了一个我从未见过的错误.我试图在线搜索错误,但找不到任何线索.
错误是:
Error in e$fun(obj, substitute(ex), parent.frame(), e$data) :
worker initialization failed: 21
Run Code Online (Sandbox Code Playgroud)
有一次我收到了这个错误,我在停止上一个任务后运行了代码(使用R Console中的"停止"按钮)但没有通过"stopCluster()"关闭集群.
通过'stopCluster()'停止集群并注册新集群'makeCluster()'和'registerDoParallel()'后,我再次运行相同的代码,任务运行正常.
有没有人遇到过这个错误,或者可能有任何关于如何找出问题的线索/提示?该错误可能与不停止以前的doParallel集群有关吗?
非常感谢任何帮助或建议!
干杯谢谢!
我同意该问题是由停止主服务器并继续使用处于损坏状态的集群对象引起的.与集群工作器的套接字连接中可能存在未读数据,导致主服务器和工作程序不同步.您甚至可能无法调用stopCluster,因为它也会写入套接字连接.
如果你确实停止了主服务器,我会建议调用stopCluster然后创建另一个集群对象,但请记住,以前的工作人员可能并不总是正常退出.最好验证工作进程是否已死,如果不是,则手动终止它们.
| 归档时间: |
|
| 查看次数: |
7006 次 |
| 最近记录: |