私は現在大規模なデータセットを扱っており、プロセスを高速化するために並列計算を使用したいと考えています。 WestGirdは、相互接続を持つクラスタを持つカナダのコンピューティングシステムです。ウェストグリッド上のRのMPIクラスタベースの並列計算(pbsファイル)
私は、並列ジョブを実行するために二つのパッケージdoSNOW
とparallel
を使用しています。私の質問は、どのように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()
"ヒューム" パッケージは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
誰でも助けることができますか?どうもありがとう。