3

ノードあたり 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)

シェルスクリプト:

#!/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

(シェル スクリプトは によって送信されますqsub script.sh)

4

0 に答える 0