RSDFT
大規模並列計算サーバ
ジョブ投入用のスクリプトは以下の通りです。
#!/bin/sh #PBS -l select=ノード数 #PBS -q キュー名 #PBS -N ジョブ名 export MPICH_NO_BUFFER_ALIAS_CHECK=1 DIRNAME=`basename $PBS_O_WORKDIR` WORKDIR=/work/$USER/$PBS_JOBID mkdir -p $WORKDIR cp -raf $PBS_O_WORKDIR $WORKDIR cd $WORKDIR/$DIRNAME aprun [ -n 並列数 ][ -N ノードあたりの並列数 ] -j 1 /work/app/RSDFT/current/src/rsdft.x > 出力ファイル 2> エラー出力ファイル cd; if cp -raf $WORKDIR/$DIRNAME $PBS_O_WORKDIR/.. ; then rm -rf $WORKDIR; fi
例)
#!/bin/sh #PBS -l select=1 #PBS -q P_016 #PBS -N rsdft export MPICH_NO_BUFFER_ALIAS_CHECK=1 DIRNAME=`basename $PBS_O_WORKDIR` WORKDIR=/work/$USER/$PBS_JOBID mkdir -p $WORKDIR cp -raf $PBS_O_WORKDIR $WORKDIR cd $WORKDIR/$DIRNAME aprun -n 16 -N 16 -j 1 /work/app/RSDFT/current/src/rsdft.x > rsdft.out 2> rsdft.err cd; if cp -raf $WORKDIR/$DIRNAME $PBS_O_WORKDIR/.. ; then rm -rf $WORKDIR; fi
並列数はfort.1のPROCSの値の積を指定します。
例)
$ grep PROCS fort.1 PROCS 2 2 4 1 1 1 / process partioning
→ 2*2*4*1*1*1=16 を指定