【问题标题】:MPI cluster based parallel calculation in R on WestGrid (pbs file)WestGrid 上 R 中基于 MPI 集群的并行计算(pbs 文件)
【发布时间】:2017-04-17 21:32:17
【问题描述】:

我现在正在处理一个大型数据集,我想使用并行计算来加速这个过程。 WestGird 是一个加拿大计算系统,具有互连的集群。

我使用两个包 doSNOWparallel 来执行并行作业。我的问题是我应该如何编写pbs 文件。当我使用qsub 提交作业时,出现错误:mpirun noticed that the job aborted, but has no info as to the process that caused that situation

这里是 R 脚本代码:

install.packages("fume_1.0.tar.gz")
library(fume)
library(foreach)
library(doSNOW)
load("spei03_df.rdata",.GlobalEnv)

cl <- makeCluster(mpi.universe.size(), type='MPI' )
registerDoSNOW(cl)
MK_grid <- 
  foreach(i=1:6000, .packages="fume",.combine='rbind') %dopar% {
    abc <- mkTrend(as.matrix(spei03_data)[i,])
    data.frame(P_value=abc$`Corrected p.value`, Slope=abc$`Sen's Slope`*10,Zc=abc$Zc)
  }
    stopCluster(cl)
    save(MK_grid,file="MK_grid.rdata")
    mpi.exit()

“fume”包从https://cran.r-project.org/src/contrib/Archive/fume/下载。

这是 pbs 文件:

#!/bin/bash
#PBS -l nodes=2:ppn=12
#PBS -l walltime=2:00:00 
module load application/R/3.3.1
cd $PBS_O_WORKDIR 

export OMP_NUM_THREADS=1
mpirun -np 1 -hostfile $PBS_NODEFILE R CMD BATCH Trend.R

有人可以帮忙吗?非常感谢。

【问题讨论】:

    标签: r parallel-processing mpi cluster-computing


    【解决方案1】:

    很难就如何使用我从未使用过的计算集群提供建议,因为每个集群的设置都有所不同,但我可以为您提供一些可能会有所帮助的一般性建议。

    你的工作脚本在我看来是合理的。它与我在我们的 Torque/Moab 集群之一上使用的非常相似。验证您是否能够以交互方式加载所有必要的 R 包是一个好主意,因为有时可能需要加载其他模块文件。如果您需要自己安装软件包,请确保将它们安装在标准的“个人库”中,该库称为“~/R/x86_64-pc-linux-gnu-library/3.3”。这通常可以避免在并行执行时在 R 脚本中加载包时出错。

    关于你的 R 脚本我还有话要说:

    • 您需要使用library(Rmpi) 在您的 R 脚本中加载 Rmpi​​ 包。加载doSNOW时不会自动加载,所以调用mpi.universe.size()时会报错。

    • 我不建议在 R 脚本本身中安装 R 包。例如,如果install.script 需要提示您输入 CRAN 存储库,这将失败,因为您无法从通过 mpirun 执行的 R 脚本执行交互式函数。

    • 我建议在调用makeCluster 时启动mpi.universe.size() - 1 集群工作人员。由于 mpirun 启动了一名工作人员,因此 makeCluster 生成 mpi.universe.size() 额外工作人员可能不安全,因为这将导致总共有 mpi.universize.size() + 1 MPI 进程。这在某些集群上有效,但在我们的至少一个集群上失败了。

    • 调试时,尝试使用 makeCluster outfile='' 选项。根据您的 MPI 安装,这可能会让您看到原本会被隐藏的错误消息。

    【讨论】:

      猜你喜欢
      • 2011-04-23
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 2011-10-16
      • 1970-01-01
      • 2014-07-22
      • 2013-07-07
      相关资源
      最近更新 更多