ジョブスクリプト例
ジョブスクリプト
ジョブスクリプトはジョブスケジューラに渡すオプション(qsubオプション)部分とコマンド実行部分から構成されます.
- qsubオプション部分:行の先頭に"#PBS”を記述します. 同じオプションをジョブ投入時に付加することもできます.
- それ以外の部分:シェルで実行されるコマンドとして扱われます.
- 各種サンプルスクリプト等はログイン後,/Samples以下からコピーしてご利用ください.
ジョブスクリプト例 :
MPIプログラム(コンパイル済)を実行する
#!/bin/csh ← 普段利用しているシェルを指定
#PBS -q SINGLE ← 投入先のキューの指定
#PBS -oe ← 標準出力,標準エラー出力を一ファイルに出力
#PBS -l select=1:ncpus=16:mpiprocs=16 ← 必要なリソース指定(この例では、MPI プロセス16並列)
#PBS -M mail-address(at)jaist.ac.jp -m be ← ジョブ終了時,開始時にそれぞれメールで通知
#PBS -N my-job ← 投入するジョブ名の指定
cd ${PBS_O_WORKDIR} ← 作業ディレクトリに移動
mpiexec_mpt dplace -s1 ./hello_mpi.exe ← コンパイル済みの実行ファイルを実行
ジョブスクリプトのサンプル
各種ジョブスクリプトのサンプルは以下です.
ログイン後,以下にPBSスクリプトのサンプルを置いていますので手元にコピーしてご利用ください.
lmpcc:/Samples
リソース指定例(チャンク)
利用するリソースをチャンク(chunk)としてカウントします.
PBSで以下のようにリソースを指定すると,デフォルトでは(1チャンク16CPUCore x2) =(2 CPU)を確保します.
#PBS -l select=2:ncpus=16
以下のようにリソースを指定した場合も確保されるCPU数は同じです.
#PBS -l select=1:ncpus=32
上記の違いは,主にMPIを利用する場合などに有効になります.
以下の例では, 2CPU(32Core)を用いて1CPUにつき8本ずつMPIプロセスを起動します.
#PBS -l select=2:ncpus=16:mpiprocs=8
これに対し,以下の例では2CPU(32Core)を確保しますが全16本のMPIプロセスは2CPUに均等に分散されるとは限りません.
#PBS -l select=1:ncpus=32:mpiprocs=16
MPIジョブ
1CPU (16CPU Core, 384GBメモリ), 0.25ノードを利用した16並列のMPIジョブ
#PBS -N mpi
#PBS -j oe
#PBS -l select=1:ncpus=16:mpiprocs=16
#PBS -l place=pack
#PBS -q SINGLE
cd ${PBS_O_WORKDIR}
export OMP_NUM_THREADS=1
mpiexec_mpt dplace -s1 ./hello_mpi_uv.exe
2CPU (32CPU Core, 768GBメモリ), 0.5ノード使用するがMPI並列数は16本のみ
#!/bin/csh
#PBS -l select=2:ncpus=16:mpiprocs=8
#PBS -j oe
#PBS -N MPI-job
cd $PBS_O_WORKDIR
mpiexec_mpt dplace -s1 ./hello_mpi.exe
OpenMPジョブ
0.25CPU (16CPU Core 384GB Mem)を利用した16並列のOpenMPジョブ
#!/bin/csh
#PBS -l select=1:ncpus=16
#PBS -j oe
#PBS -N OpenMP-job
cd $PBS_O_WORKDIR
setenv OMP_NUM_THREADS 16
setenv KMP_AFFINITY disabled
dplace ./a.out
Hybrid(MPI+OpenMP)ジョブ
2CPU ("16CPU Core 384GB Mem" x2) を利用し, 1CPUごとに4(MPI)プロセスx4(OpenMP)スレッド
#!/bin/bash
#PBS -l select=2:ncpus=16:mpiprocs=4 <-- 1CPUにつきMPI4プロセス
#PBS -j oe
#PBS -N hybrid-job
cd $PBS_O_WORKDIR
export OMP_NUM_THREADS=4 <-- 1プロセスにつき4スレッド
mpiexec_mpt omplace -nt ${OMP_NUM_THREADS} ./hello_hyb.exe <-- 実行
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/lm/BIOVIA/MaterialsStudio21.1/etc/DMol3/bin
RunDMol3.sh -np 8 test <-- (1chunk=8Core以下の数値(並列数)を指定してください.)