将软件包传递到R中的MPI集群

时间:2019-06-17 18:14:10

标签: r

我正在尝试使用MPI集群运行模拟。当我不需要额外的程序包时,它可以很好地工作。例如,我可以获得具有并行运行的多个数据集的线性模型系数。但是,当我尝试对分位数回归进行同样的操作时,我需要使用“ quantreg”软件包。所以我用下面的代码。但是系统退出时说“没有名为'quantreg'的程序包。但是所有节点都具有它。我的管理员接过它。我尝试使用.package ='quantreg',但一直收到相同的错误。我非常感谢有人提出建议。我也尝试了clusterApply和clusterCall,但没有成功。

library("Rmpi")
library("doMPI")

mycluster <- startMPIcluster(count=12)
registerDoMPI(mycluster)


# Using parallel; you can check it with the nodename info


trials<-50

output <- foreach(a=c(.3,.5,.7), .combine = data.frame) %dopar% {

  foreach( b=icount(trials) , .combine = data.frame) %dopar% {

    set.seed(b)
    x=matrix(runif(500),100,5)
    y=rnorm(100)
    betas<-quantreg::rq(y ~ x, tau = a)$coef
    result <- c(betas, Sys.info()[c ("nodename")])

  }
}

PBS脚本如下:

#!/bin/bash
#PBS -N AYParallel
#PBS -l nodes=2:ppn=8
#PBS -l walltime=00:05:00
#PBS -q una
# #PBS -j oe


module load R
module load mpi/mvapich2-x86_64
module load openmpi/3.0.0  

cd $PBS_O_WORKDIR

export OMP_NUM_THREADS=1


mpirun -np 1 R --file=test0.R

0 个答案:

没有答案