ジョブキューイングシステム
Cray XC40はジョブスケジューラによって管理されています.
基本的なジョブの確認,投入方法は並列機利用マニュアルをご参照ください.
キュークラス (2018.8 修正)
クラス | ノード数 | コア数 | 実行時間 | 同時実行ジョブ数 | 同時実行ジョブ数/1ユーザ | 優先度 |
---|---|---|---|---|---|---|
TINY | 1-2node | ~72cores | 30min | 無制限 | 無制限 | 1 |
SINGLE | 1-4node | ~144cores | 4Day | 54job | 10job | 5 |
SMALL | 5-16node | ~576cores | 72hour | 26job | 6job | 4 |
MEDIUM | 17-32node | ~1152cores | 72hour | 18job | 4job | 3 |
LARGE | 33-64node | ~2304cores | 60hour | 6job | 2job | 2 |
XLARGE | 65-128node | ~4608cores | 48hour | 2job | 1job | 2 |
XXLARGE | 129-384node | ~13824cores | 36hour | 1job | 1job | 2 |
ALL | 調整中 | |||||
LONG-S | 1-8node | ~288cores | 1week | 12job | 3job | 5 |
LONG-M | 9-64node | ~1152cores | 96hour | 3job | 1job | 4 |
LONG-L | 調整中 | (申請ベース) | - | - | - |
- ノード/コア=利用可能ノード数/コア数
- 実行時間=キューに投入されたジョブが実行状態に置かれる最大の時間
- 同時実行ジョブ数=同じキュー内のジョブが同時に実行されうる個数
- 同時実行ジョブ数/1ユーザ=同じキュー内にある同一ユーザのジョブが同時に実行されうる個数
- 同時投入数/1ユーザ=同じキューに1ユーザが同時に投入可能なジョブ数(実行中のジョブも含む)
- 赤字は2018.8.10修正案
■1ノードには2CPU/36コアが搭載されています.
■ジョブの割り振りはノード単位で行われます.このためシングルプロセス+シングルスレッドのジョブでも1ノード=24コアが占有される場合があります.
**なお、申請ジョブクラスについてはこちらをご覧ください
ステージング
概要
ジョブ開始時にファイル・ディレクトリを作業用領域にコピーし、ジョブ終了時にファイル・ディレクトリをコピーバックする機能
ファイルステージングの流れ
0. 事前準備
XC40を初めて利用される際には、/work領域の下にご自身専用の作業領域を作成してください。
% mkdir /work/<user name>
1. ステージイン
ホームディレクトリ(/home/username)下からプログラム実行に必要なファイル・ディレクトリをステージングディレクトリ(/work)にコピー
2. プログラム実行
3. ステージアウト
ファイル・ディレクトリをステージングディレクトリ(/work)からホームディレクトリ(/home/username/xxxxx)下のジョブディレクトリにコピー
*ステージングディレクトリにコピーされたファイル・ディレクトリはジョブ終了後に消去されることに注意
ジョブスクリプトの記述の仕方
・ホームディレクトリ"/home/Username/In_dir" 下のファイル・ディレクトリを、ジョブ実行ディレクトリ"/work/Username" 下にコピー
#PBS -W stagein=/work/Username/Job_dir@xc40-gw0:/home/Username/In_dir/*
・ジョブ終了後に生成したファイル・ディレクトリをホームディレクトリ以下にコピー
#PBS -W stageout=/work/Username/Job_dir/*@xc40-gw0:/home/Username/Out_dir
ジョブスクリプトへのステージングの記述例
使用方法:
#PBS -N job0
#PBS -q SINGLE
#PBS -l select=1
#PBS -j oe
#PBS -W stagein=/work/Username/Job_dir@xc40-gw0:/home/Username/In_dir/*
#PBS -W stageout=/work/Username/Job_dir /*@xc40-gw0:/home/Username/Out_dir
cd /work/Username/Job_dir # Copy the current directory to the staging directory
aprun -n 1 ./a.out <input >output.txt
* Key point for Staging Option
•コピー元のファイル指定にワイルドカードを使用可能(同じ名前のファイルは上書きされることに注意)
•コピー先のファイル名を指定することでリネーム可能
#PBS –W stagein=/work/Username/Job_dir/input@xc40-gw0:/home/Username/In_dir/file1
•コピー元ファイルを複数指定する場合は以下のように指定する
#PBS –W stagein=“/work/Username/Job_dir@xc40-gw0:/home/Username/In_dir/file1,/work/Username/Job_dir@xc40-gw0:/home/Username/In_dir/file2”
•コピー元がディレクトリ名の場合、ディレクトリをコピーする
✓ジョブ終了時にステージングディレクトリは消去されることに注意
利用サンプル1:実行ファイルとデータファイル(ディレクトリ)が同じディレクトリにある
〇homeのディレクトリ構成
/home/username/program/
--- /program.exe
--- /data1
** 計算実行コマンド
program.exe -in ./data1/data2 > result.dat
------------------------------------------------上記構成を以下のように配置する
〇計算実行時の作業ディレクトリ構成 <-- 一時使用のみのため,短いパスに配置するとよい
/work/username/
--- /program.exe
--- /data1
〇計算後にコピーバックしたいファイル
/work/username/
--- /result.dat
--- /data1/data2
** ファイル配置後の実行コマンド
program.exe -in data1/data2 > result.dat
例1: /home/Username/program以下のすべてのファイルをコピーする(programディレクトリに不要なファイルがある場合,I/O時間が長くなる)
#PBS -N mpi
#PBS -l select=1
#PBS -q TINY
#PBS -j oe
#PBS -W stagein=/work/Username/@xc40-gw0:/home/Username/program/*
#PBS -W stageout=/work/Username/*@xc40-gw0:/home/Username/program/
cd /work/Username
setenv OMP_NUM_THREADS 1
aprun -n 36 -N 36 -j 1 ./program.exe -in ./data1/data2 > ./result.dat
例2 : /data1ディレクトリすべてと実行用のprogram.exeのみコピーし,data2とresult.datファイルをコピーバックする
#PBS -N mpi
#PBS -l select=1
#PBS -q TINY
#PBS -j oe
#PBS -W stagein=/work/Username/@xc40-gw0:/home/Username/program/data1,/work/Username/@xc40-gw0:/home/Username/program/program.exe
#PBS -W stageout=/work/Username/result.dat@xc40-gw0:/home/Username/program/result.dat,/work/Username/data1/data2@xc40-gw0:/home/Username/program/data1/data2
cd /work/Username
setenv OMP_NUM_THREADS 1
aprun -n 36 -N 36 -j 1 ./program.exe -in ./data1/data2 > ./result.dat
利用サンプル2:実行ファイルとデータファイルが異なるディレクトリにある
〇homeのディレクトリ構成
/home/username/program/
--- /program.exe
/examples/data1
--- /data2
/examples/data3
--- /data4
/examples/data5
--- /data6
** 計算実行コマンド
program/program.exe -in ./examples/data1/data2 > result.dat
------------------------------------------------上記構成を以下のように配置する
〇計算実行時の作業ディレクトリ構成 <-- 一時使用のみのため,配置を修正できる場合は短いパスに配置するとよい
/work/username/
--- /program.exe
--- /data1
〇計算後にコピーバックしたいファイル
/work/username/
--- /result.dat
--- /data1/data2
** ファイル配置後の実行コマンド
program.exe -in data1/data2 > result.dat
例 : /data1ディレクトリすべてと実行用のprogram.exeのみコピーし,data2とresult.datファイルをコピーバックする
#PBS -N mpi
#PBS -l select=1
#PBS -q TINY
#PBS -j oe
#PBS -W stagein=/work/Username/@xc40-gw0:/home/Username/examples/data1,/work/Username/@xc40-gw0:/home/Username/program/program.exe
#PBS -W stageout=/work/Username/result.dat@xc40-gw0:/home/Username/program/result.dat,/work/Username/data1/data2@xc40-gw0:/home/Username/examples/data1/data2
cd /work/Username
setenv OMP_NUM_THREADS 1
aprun -n 36 -N 36 -j 1 ./program.exe -in ./data1/data2 > ./result.dat
ジョブの確認(XC40専用コマンド)
XC40では,PBS標準のqstatコマンドだと利用中のノード数などが正確に表示されない場合があります.
現在動作しているジョブを確認するためには以下のコマンドが利用できます.
nqstat
Job Script
Sample Script
各種サンプルスクリプトが/work/Samples以下にあります.
適宜コピーしてご利用ください.
MPI Program: 1ノードあたり36プロセス配置,全6ノード(216プロセス)利用
- ncpus = mpiprocsでも,mpiprocs(ノード内MPIプロセス数)の指定は省略しないで下さい
- 複数ノードを利用する際はplace=scatterを付加して下さい
- コードにOpenMP並列を含まないことが明らかでない場合,OMP_NUM_THREADS=1を記載して下さい
#!/bin/csh
#PBS -q <QUEUE>
#PBS -j oe
#PBS -l select=6 < 6ノード,各ノードにMPI36プロセスずつ.
#PBS -l place=scatter
cd $PBS_O_WORKDIR <- 作業ディレクトリ(カレントディレクトリ)への移動
setenv OMP_NUM_THREADS 1
aprun -n 216 -N 36 -j 1 ./a.out <- j 1 オプションでハイパースレッド無効化(2018.8)
XC40ではプログラム実行用に特殊なコマンド"aprun"を利用します.
aprun [-n num/-N num/ -d num ] <実行ファイル>
-n: MPIプロセス数 (PBSのmppwidthに対応)
-N: 1ノードあたりに割り付けるMPIプロセス数 (PBSのmppnppnに対応)
-d: 1MPIプロセス内のスレッド数 (PBSのmppdepthに対応)
MPI/OpenMP ハイブリッド: 1ノードあたりMPI2プロセス,プロセスごとに18スレッド配置,全12ノード利用(24MPI,432スレッド)
- ncpus = mpiprocs x OMP_NUM_THREADS となります [最大36 (コア)]
- 複数ノードを利用する際はplace=scatterを付加して下さい
- mpiprocsは1ノードで動作させるMPIプロセス数を指定してください
#!/bin/csh
#PBS -l select=12:ncpus=36:mpiprocs=2 < 12ノード,各ノードにMPI2プロセスx18スレッド.
#PBS -l place=scatter
#PBS -q <QUEUE>
cd $PBS_O_WORKDIR <- 作業ディレクトリ(カレントディレクトリ)への移動
setenv OMP_NUM_THREADS 18
aprun -n 24 -S 1 -N 2 -d $OMP_NUM_THREADS -j 1 -cc depth ./a.out <- j 1 オプションでハイパースレッド無効化(2018.8)
SMP プログラム (OpenMP, 自動並列):
- ncpus=ompthreads の場合,ompthreadsを省略できます
#!/bin/csh
#PBS -l select=1:ncpus=36:ompthreads=36 < 1ノード,ノード内36スレッド.
#PBS -l place=scatter
#PBS -q <QUEUE>
cd $PBS_O_WORKDIR <- 作業ディレクトリ(カレントディレクトリ)への移動
setenv OMP_NUM_THREADS 36
aprun -n 1 -d $OMP_NUM_THREADS -j 1 ./a.out <- j 1 オプションでハイパースレッド無効化(2018.8)
ジョブの投入
・作成したジョブスクリプトを以下のようにジョブスケジューラに投入します.
% qsub -q <キュークラス名> <ジョブスクリプト>
・ジョブの開始/終了時にメール通知をしたい場合は以下のようにジョブを投入します.
% qsub -q <キュー名> -M <mail address> -m be <ジョブスクリプト名>
-M <メールのあて先>
-m be [b -> begin(ジョブ開始) , e -> end(ジョブ終了)]
・ジョブ削除を削除したい場合は以下のよう行います.
なお、ジョブの所有者以外は実行できません.
% qdel <Job id>
利用ドキュメント(日本語のみ)
この先のページを表示するにはログインが必要です