ジョブスクリプト例
ジョブスクリプト
ジョブスクリプトはジョブスケジューラに渡すオプション(qsubオプション)部分とコマンド実行部分から構成されます.
- qsubオプション部分:行の先頭に"#PBS”を記述します. 同じオプションをジョブ投入時に付加することもできます.
- それ以外の部分:シェルで実行されるコマンドとして扱われます.
- 各種サンプルスクリプト等はログイン後,/work/Samples以下からコピーしてご利用ください.
ジョブスクリプト例 :
MPIプログラム(コンパイル済)を実行する
#!/bin/csh ← 普段利用しているシェルを指定
#PBS -q SINGLE ← 投入先のキューの指定
#PBS -oe ← 標準出力,標準エラー出力を一ファイルに出力
#PBS -l select=1:mpiprocs=8 ← 必要なリソース指定(この例では、MPI プロセス8並列)
#PBS -N my-job ← 投入するジョブ名の指定
cd ${PBS_O_WORKDIR} ← 作業ディレクトリに移動
mpirun -machinefile ${PBS_NODEFILE} -np 8 ./hello_mpi ← コンパイル済みの実行ファイルを実行
ジョブスクリプトのサンプル
各種ジョブスクリプトのサンプルは以下です.
このほかpccログイン後,以下にPBSスクリプトのサンプルを置いていますので手元にコピーしてご利用ください.
pcc:/work/Samples
リソース指定例
利用するリソースをチャンク(chunk)としてカウントします.
本システムのデフォルトのチャンクサイズは以下です.
1 Chunk:
0.5 CPU (8 CPU Core/ncpus= 8 ) + 16GBメモリ
PBSで以下のようにリソースを指定すると,デフォルトでは2チャンク16CPU Core を取得します.
#PBS -l select=2
以下のようにリソースを指定した場合,チャンクサイズが変わります.この例では16CPU Coreを1チャンクとして2チャンク,全32CPU Coreを取得します.
#PBS -l select=2:ncpus=16
MPIジョブ
1CPU (16CPU Core, 32GBメモリ), 0.5ノードを利用した16並列のMPIジョブ
#!/bin/csh
#PBS -l select=2:ncpus=8:mpiprocs=8
#PBS -j oe
#PBS -N MPI-job
cd $PBS_O_WORKDIR
mpirun -machinefile ${PBS_NODEFILE} -np 8 ./hello_mpi
2CPU (32CPU Core, 64GBメモリ), 1ノード分 使用するがMPI並列数は16本のみ
#!/bin/csh
#PBS -l select=4:ncpus=8:mpiprocs=4
#PBS -j oe
#PBS -N MPI-job
cd $PBS_O_WORKDIR
mpirun -machinefile ${PBS_NODEFILE} -np 4 ./hello_mpi
OpenMPジョブ
0.5CPU (8CPU Core)を利用した8並列のOpenMPジョブ
#!/bin/csh
#PBS -l select=1
#PBS -j oe
#PBS -N OpenMP-job
cd $PBS_O_WORKDIR
setenv OMP_NUM_THREADS 8
./a.out
Hybrid(MPI+OpenMP)ジョブ
2CPU (32CPU Core) を利用し, 8Coreごとに2(MPI)プロセスx4(OpenMP)スレッド
#!/bin/bash
#PBS -l select=4:ncpus=8:mpiprocs=2 <-- 1CPUにつき2プロセス
#PBS -j oe
#PBS -N hybrid-job
cd $PBS_O_WORKDIR
export OMP_NUM_THREADS=4 <-- 1プロセスにつき4スレッド
mpirun -machinefile ${PBS_NODEFILE} -np 2 ./hello_hyb <-- 2プロセス生成
2CPU (32CPU Core) を利用し, 1プロセスにつき4スレッドx4
#!/bin/bash
#PBS -l select=4:mpiprocs=2 <-- 2CPU, 1CPUにつき2プロセス ( = 全8プロセス )
#PBS -j oe
#PBS -N hybrid-job
cd $PBS_O_WORKDIR
export OMP_NUM_THREADS=4 <-- 1プロセスにつき4スレッド
mpirun -machinefile ${PBS_NODEFILE} -np 4 ./hello_hyb <-- 4プロセス生成
Materials Studioジョブ
1CPU内の8Coreを利用した8並列のDmol3ジョブ
#!/bin/csh
#PBS -l select=1
#PBS -j oe
#PBS -N DMOL3
cd $PBS_O_WORKDIR
setenv PATH ${PATH}:/work/opt/Accelrys/MaterialsStudioX.X/etc/DMol3/bin
RunDMol3.sh -np 8 test <-- (1chunk=8Core以下の数値(並列数)を指定してください.)