menu

ジョブスクリプト例

ジョブスクリプト

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

  • qsubオプション部分:行の先頭に"#PBS”を記述します. 同じオプションをジョブ投入時に付加することもできます.
  • それ以外の部分:シェルで実行されるコマンドとして扱われます.
  • 各種サンプルスクリプト等はログイン後,/work/Samples以下からコピーしてご利用ください.

ジョブスクリプト例 : 

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

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

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

mpiexec_mpt dplace -s1 ./hello_mpi.exe               ← コンパイル済みの実行ファイルを実行

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

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

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

lmpcc:/work/Samples/lmpcc

リソース指定例(チャンク)

利用するリソースをチャンク(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/Accelrys/MaterialsStudioX.X/etc/DMol3/bin

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