【发布时间】:2014-09-24 19:04:49
【问题描述】:
我正在尝试在我们的计算集群上并行运行分析。
不幸的是,我不得不自己设置 Rmpi,而且可能没有正确设置。
因为我必须将所有必要的软件包安装到我的主文件夹中,所以我总是需要调用
.libPaths('/home/myfolder/Rlib');
在我可以加载包之前。
但是,doMPI 似乎在我可以设置库路径之前尝试加载自身。
.libPaths('/home/myfolder/Rlib');
cat("Step 1")
library(doMPI)
cl <- startMPIcluster()
registerDoMPI(cl)
cat("Step 2")
Children_mcmc1 = foreach(i=1:2) %dopar% {
cat("Step 3")
.libPaths('/home/myfolder/Rlib');
library(MCMCglmm)
cat("Step 4")
load("krmh_married.rdata")
nitt = 1000; thin = 50; burnin = 100
MCMCglmm( children ~ paternalage.factor ,
random=~idParents,
family="poisson",
data=krmh_married,
pr = F, saveX = T, saveZ = T,
nitt=nitt,thin=thin,burnin=burnin)
}
closeCluster(cl)
mpi.quit()
如果我这样做
mpirun -H localhost -n 3 R --slave -f "3 - krmh mcmcglmm scc test 2.r"
我得到(在删除一些样板消息之后)
启动期间 - 警告消息:
第 1 步
第 1 步
第 1 步
第 2 步 { 中的错误:任务 2 失败 - “无法打开连接”
调用:%dopar% ->
执行停止
如果我这样做
R --slave -f "3 - krmh mcmcglmm scc test 2.r"
我明白了
第 1 步
库 (doMPI) 中的错误:没有名为“doMPI”的包
调用:本地 ... eval -> suppressMessages -> withCallingHandlers -> 库
执行停止
库 (doMPI) 中的错误:没有名为“doMPI”的包
调用:本地 ... eval -> suppressMessages -> withCallingHandlers -> 库
执行停止
我尝试在运行时安装doMPI,但即使没有打印第 2 步,似乎错误是由循环引起的。
当然,尽管我仍在前端测试所有这些,但我还没有将作业提交到预期的集群。
我试图在我的 .Rprofile 中指定 .libPaths 调用,但我不确定这是否会在集群上被读取,我什至无法让它在前端被读取(而且我不能找出 R 在哪里寻找文件)。
【问题讨论】:
标签: r foreach parallel-processing mpi hpc