#!/bin/sh
#PBS -l select=...
#PBS -l walltime=[時間]# PBS_O_WORKDIR はジョブを投入した時の作業ディレクトリ(CWD)に当たります
# ccfep でのジョブの投入時と演算ノードでの作業ディレクトリをそろえるために
# スクリプト内でディレクトリ移動を行います
if [ ! -z ${PBS_O_WORKDIR} ]; then
cd ${PBS_O_WORKDIR} # PBS_O_WORKDIR 変数が存在している場合、そのディレクトリへ移動
fi(実際の処理)
#!/bin/csh -f
#PBS -l select=...
#PBS -l walltime=[時間]if ( $?PBS_O_WORKDIR ) then
cd $PBS_O_WORKDIR # sh/bash の場合に同じ
endif(実際の処理)
#PBS -l select=1:ncpus=40:mpiprocs=40:ompthreads=1:jobtype=small
#PBS -l walltime=72:00:00
#PBS -l select=4:ncpus=40:mpiprocs=40:ompthreads=1:jobtype=small
#PBS -l walltime=168:00:00
#PBS -l select=1:ncpus=40:mpiprocs=20:ompthreads=2:jobtype=large
#PBS -l walltime=00:30:00
#PBS -l select=2:ncpus=40:mpiprocs=40:ompthreads=1:jobtype=large
#PBS -l walltime=01:00:00
#PBS -l select=1:ncpus=1:mpiprocs=1:ompthreads=1:jobtype=core
#PBS -l walltime=168:00:00
#PBS -l select=1:ncpus=12:mpiprocs=4:ompthreads=1:jobtype=core
#PBS -l walltime=12:00:00
(利用可能なメモリ量はncpusの値に比例します。そのため、jobtype=core で MPI のプロセス数を増やさずにメモリ量を増やしたい場合はこの記述が有用です。)
#PBS -l select=1:ncpus=18:mpiprocs=9:ompthreads=2:jobtype=core
#PBS -l walltime=02:00:00
#PBS -l select=1:ncpus=32:mpiprocs=8:ompthreads=4:jobtype=core
#PBS -l walltime=168:00:00
#PBS -l select=1:ncpus=36:mpiprocs=1:ompthreads=36:jobtype=core
#PBS -l walltime=168:00:00
#PBS -l select=1:ncpus=1:mpiprocs=1:ompthreads=1:ngpus=1:jobtype=gpu
#PBS -l walltime=24:00:00
#PBS -l select=1:ncpus=12:mpiprocs=12:ompthreads=1:ngpus=1:jobtype=gpup
#PBS -l walltime=12:00:00
ngpus=1 の時は ncpus=12 が最大です。
#PBS -l select=4:ncpus=8:mpiprocs=2:ompthreads=4:ngpus=2:jobtype=gpup
#PBS -l walltime=12:00:00
mpiprocs の値は ngpus の値の倍数である必要があります。実際には GPU だけを使い、CPU を使わない場合でも select 文では CPU を使うという指定が必要です。
#PBS -l select=2:ncpus=24:mpiprocs=24:ompthreads=1:ngpus=2:jobtype=gpup
#PBS -l walltime=24:00:00
jobtype=gpu or gpup, ngpus=2 で複数ノードを使う場合、最大で指定数の倍のノード(この場合ならば 4 ノード)にプロセスが散らばる可能性があります。
#PBS -l select=1:ncpus=4:mpiprocs=4:ompthreads=1:ngpus=4:jobtype=gpuv
#PBS -l walltime=00:30:00
#PBS -l select=1:ncpus=8:mpiprocs=8:ompthreads=1:ngpus=8:jobtype=gpuv
#PBS -l walltime=00:30:00
(プログラムは mpirun -np 8 (prog) のように実行します。jobtype=gpuv の場合は複数ノードの利用はできません。)
#PBS -l select=1:ncpus=24:mpiprocs=8:ompthreads=3:ngpus=8:jobtype=gpuv
#PBS -l walltime=00:30:00
(プログラムは mpirun -np 8 (prog) のように実行します。jobtype=gpuv の場合は複数ノードの利用はできません。)
(実際にはジョブは 8 以上にノードに分散されます)
#PBS -l select=8:ncpus=2:mpiprocs=2:ompthreads=1:ngpus=2:jobtype=gpup
#PBS -l walltime=24:00:00
なお、下の表記でも同じ意味になります。
#PBS -l select=16:ncpus=1:mpiprocs=1:ompthreads=1:ngpus=1:jobtype=gpup
#PBS -l walltime=24:00:00
jobtype=gpu, ngpus=2 で複数ノード指定の場合は特殊な取扱いとなっています。
select=8 を指定した場合でも 8-16 ノードにジョブが分散して配置されることになります。
奇数枚の GPU を使う場合には下側の表現を使う必要があります。