R中从多核到多节点

时间:2015-08-12 19:05:29

标签: r parallel-processing cluster-computing plyr domc

我已经习惯于在每个节点有32个核心的群集上执行R作业。我现在在一个每个节点有16个核心的集群上。我想通过一次使用多个节点(就像我一直在做的那样)来维持(或改进)性能。

从我的虚拟销售脚本和虚拟函数(如下所示)可以看出,单个节点上的并行化非常简单。是否同样容易将其扩展到多个节点?如果是这样,我将如何修改我的脚本?

R脚本:

library(plyr)
library(doMC)
registerDoMC(16)

dothisfunctionmanytimes = function(d){
    print(paste("my favorite number is",d$x,'and my favorite letter is',d$y))
}
d = expand.grid(1:1000,letters)
d_ply(.data=d,.fun=dothisfunctionmanytimes,.parallel=T)

Shell脚本:

#!/bin/sh
#PBS -N runR
#PBS -q normal
#PBS -l nodes=1:ppn=32
#PBS -l walltime=5:00:00
#PBS -j oe
#PBS -V
#PBS -M email
#PBS -m abe

. /etc/profile.d/modules.sh
module load R

#R_LIBS=/home/diag/opt/R/local/lib
R_LIBS_USER=${HOME}/R/x86_64-unknown-linux-gnu-library/3.0
OMP_NUM_THREADS=1

export R_LIBS R_LIBS_USER OMP_NUM_THREADS

cd $PBS_O_WORKDIR
R CMD BATCH script.R

(shell脚本由qsub script.sh提交)

0 个答案:

没有答案