ジョブ投入
ジョブキューイングシステム
Cray XC30はジョブスケジューラによって管理されています.
基本的なジョブの確認,投入方法は並列機利用マニュアルをご参照ください.
キュークラス
クラス | ノード数 | コア数 | 実行時間 | 同時実行ジョブ数 | 同時実行ジョブ数/1ユーザ | 優先度 |
---|---|---|---|---|---|---|
TINY | 1-4node | ~96core | 30min | 無制限 | 無制限 | 1 |
SMALL | 4-16node | ~384core | 48hour | 16job | 4job | 3 |
MEDIUM | 16-32node | ~768core | 12hour | 6job | 3job | 4 |
LARGE | 32-128node | ~3072core | 12hour | 2job | 1job | 2 |
XLARGE | 128-356node | ~8544core | 12hour | 1job | 1job | 7 |
LONG-S | 1-8node | ~192core | 1week | 4job | 1job | 3 |
LONG-M | 8-32node | ~768core | 96hour | 2job | 1job | 4 |
LONG-L | ~360node | (申請ベース) | - | - | - |
- ノード/コア=利用可能ノード数/コア数
- 実行時間=キューに投入されたジョブが実行状態に置かれる最大の時間
- 同時実行ジョブ数=同じキュー内のジョブが同時に実行されうる個数
- 同時実行ジョブ数/1ユーザ=同じキュー内にある同一ユーザのジョブが同時に実行されうる個数
- 同時投入数/1ユーザ=同じキューに1ユーザが同時に投入可能なジョブ数(実行中のジョブも含む)
■1ノードには2CPU/24コアが搭載されています.
■ジョブの割り振りはノード単位で行われます.このためシングルプロセス+シングルスレッドのジョブでも1ノード=24コアが占有される場合があります.
■4ノードがTINYキュー専用に分離されています.このためXLARGEキューは8544Coreが取得できる最大コア数となります.申請クラスのLARGE-Lはこの限りではありません.
**なお、申請ジョブクラスについてはこちらをご覧ください
ジョブの確認(XC30専用コマンド)
XC30では,PBS標準のqstatコマンドだと利用中のノード数などが正確に表示されない場合があります.
現在動作しているジョブを確認するためには以下のコマンドが利用できます.
nqstat
ジョブスクリプト例
MPI プログラム
#!/bin/csh
#PBS -q <QUEUE>
#PBS -j oe
#PBS -l mppwidth=48 <-利用するMPIプロセス数 <必須>
#PBS -l mppnppn=24 <-1ノードで動作させるプロセス数 <必須:最大は24>
#PBS -l mppdepth=1 <-MPIプログラムでは1を指定
#PBS -N BATCH-JOB <- ジョブ名の設定
cd $PBS_O_WORKDIR <- 作業ディレクトリ(カレントディレクトリ)への移動
aprun -n 48 -N 24 -d 1 ./a.out
XC30ではプログラム実行用に特殊なコマンド"aprun"を利用します.
aprun [-n num/-N num/ -d num ] <実行ファイル>
-n: MPIプロセス数 (PBSのmppwidthに対応)
-N: 1ノードあたりに割り付けるMPIプロセス数 (PBSのmppnppnに対応)
-d: 1MPIプロセス内のスレッド数 (PBSのmppdepthに対応)
MPI/OpenMP ハイブリッド
#!/bin/csh
#PBS -l mppwidth=4 <-動作させるMPIプロセス数.2プロセスx2ノード=4. この場合2ノード利用
#PBS -l mppnppn=2 <-1ノード内で2プロセス.12スレッドx2プロセス=24で,ノード内の24コア全てを利用.
#PBS -l mppdepth=12 <-1CPU内の12コアを用いて12スレッドで動作
$PBS_O_WORKDIR <- 作業ディレクトリ(カレントディレクトリ)への移動
aprun -n 4 -N 2 -d 12 ./a.out
複数スクリプトの実行
XC30では2013/7より1ユーザが同時に投入しておけるジョブの数を制限することになりました.このため多くの実行ファイルを実行させたい場合は,ジョブスクリプトに複数の実行ファイルを記載しておく必要があります.
1つのジョブスクリプトの中で複数の実行ファイルを実行する場合の記述例は以下です.
*スクリプトの書き方によっては,各スクリプトの実行結果が上書きされる場合があります.実行結果の格納位置には十分気をつけてください.
#!/bin/csh
#PBS -q SMALL
#PBS -j oe
#PBS -l mppwidth=48 <-動作させるMPIプロセス数 <必須>
#PBS -l mppnppn=24 <-1ノードで動作させるプロセス数 <必須:最大24>
#PBS -l mppdepth=1 <-MPIプログラムでは1を指定
#PBS -N BATCH-JOB <- ジョブ名の設定
cd /work/xxxxxxxx/job1
aprun -n 48 -N 24 -d 1 ./job1.exe
cd /work/xxxxxxxxx/job2
aprun -n 48 -N 24 -d 1 ./job2.exe
cd /work/xxxxxxxx/job3
aprun -n 48 -N 24 -d 1 ./job3.exe
申請キューとは
事前に申請して了承が得られれば,期間を限定して機器の全体または一部ノードを占有することができます.
機器を占有するための期間限定のキューを申請キューといいます.
申請キューの申請方法
- LONG-Lの申請の際には少なくとも実行したい日付の2週間前にmpc-adminに申請する。
- mpc-adminグループがLONG-Lの申請を受理した場合、ユーザーに占有する時間を告知し、そのスケジュールに合わせて情報社会基盤研究センターがキューにある新規ジョブの実行を停止する設定を行う。
- LONG-Lの申請者は実行中のジョブが終了しリソースが空いた時点でがジョブを投入する。
- LONG-Lの申請者は終了時間まで全てのジョブを終了させる。また、申請者は申請したことにより得られた成果を報告する.