menu

ジョブスクリプト例

ジョブスクリプト

ジョブスクリプトはジョブスケジューラに渡すオプション(qsubオプション)部分とコマンド実行部分から構成されます.

  • qsubオプション部分:行の先頭に"#PBS”を記述します. 同じオプションをジョブ投入時に付加することもできます.
  • それ以外の部分:シェルで実行されるコマンドとして扱われます.

ジョブスクリプト例 : 

MPIプログラム(コンパイル済)を実行する

#!/bin/csh                  ← 普段利用しているシェルを指定
#PBS -q SINGLE              ← 投入先のキューの指定
#PBS -oe                   ← 標準出力,標準エラー出力を一ファイルに出力
#PBS -l select=2:mpiprocs=6   ← 必要なリソース指定(この例では、MPI プロセス12並列) 
#PBS -N my-job              ← 投入するジョブ名の指定

cd ${PBS_O_WORKDIR}        ← 作業ディレクトリに移動

mpirun -r ssh  -machinefile ${PBS_NODEFILE} -np 12 ./hello_mpi               ← コンパイル済みの実行ファイルを実行

ジョブスクリプトのサンプル

各種ジョブスクリプトのサンプルは以下です.

このほかpccログイン後,以下にPBSスクリプトのサンプルを置いていますので手元にコピーしてご利用ください.

pcc:/work/Samples

リソース指定例

利用するリソースをチャンク(chunk)としてカウントします.

1 Chunk:
1 CPU (10 CPU Core/ncpus=10) + 32GBメモリ

通常は2チャンクで1ノード,4チャンクで2ノードを利用できます.

MPIジョブ

2CPU (20CPU Core), 1ノードを利用した20並列のMPIジョブ

#!/bin/bash
#PBS -l select=2
#PBS -j oe
#PBS -N MPI-job

cd $PBS_O_WORKDIR

mpirun -r ssh  -machinefile ${PBS_NODEFILE} -np 20 ./hello_mpi

4CPU (40CPU Core), 2ノードを使用するがMPIプロセス数は10本のみ

#!/bin/bash
#PBS -l select=2
#PBS -j oe
#PBS -N MPI-job

cd $PBS_O_WORKDIR

mpirun -r ssh  -machinefile ${PBS_NODEFILE} -np 10 ./hello_mpi

OpenMPジョブ

1CPU (10CPU Core)を利用した10並列のOpenMPジョブ

#!/bin/bash
#PBS -l select=1
#PBS -j oe
#PBS -N OpenMP-job

cd $PBS_O_WORKDIR
setenv OMP_NUM_THREADS 10

./a.out

Hybrid(MPI+OpenMP)ジョブ

3CPU (30CPU Core) を利用し, 1CPUにつき1(MPI)プロセスx10(OpenMP)スレッド

#!/bin/bash
#PBS -l select=3:mpiprocs=1   <-- 3CPU, 1CPUにつき1プロセス
#PBS -j oe
#PBS -N hybrid-job

cd $PBS_O_WORKDIR

export OMP_NUM_THREADS=10    <-- 1プロセスにつき10スレッド

mpirun -machinefile ${PBS_NODEFILE} -np 3 ./hello_hyb <-- 3プロセス生成

4CPU (40CPU Core) を利用し, 1プロセスx5スレッド 

#!/bin/bash
#PBS -l select=4:mpiprocs=2   <-- 4CPU, 1CPUにつき2プロセス ( = 全8プロセス )
#PBS -j oe
#PBS -N hybrid-job

cd $PBS_O_WORKDIR

export OMP_NUM_THREADS=5    <-- 1プロセスにつき5スレッド

mpirun -machinefile ${PBS_NODEFILE} -np 8 ./hello_hyb <-- 8プロセス生成

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/MaterialsStudio6.1/etc/DMol3/bin

RunDMol3.sh -np 8 test  <-- (1chunk=10Core以下の数値(並列数)を指定してください.)