使い方
キューの名称
KDKのキュー名は以下のとおりです。ジョブ投入時、-p オプションの直後に以下のキュー名を指定してください。
システムA: gr20001a
システムB: gr20001b
システムC: gr20001c
システムG: gr20001g
計算時間の上限
計算時間(経過時間)に上限を設けています。
年度はじめに各ユーザーは「基本計算時間」(=「標準コア数」×7日間)が割り当てられます。
計算時間が上限に達すると新規にジョブを投入することができなくなります。
例えば、2024年度のシステムAの「標準コア数」は10,080コアなので、70,560コア日の基本計算時間が割り当てられます。
計算時間の使用状況は以下のコマンドで知ることができます。
show_my_time [a|b|c]
使用率(use ratio)が90%を超えたら以下のページで計算時間の追加申請をすることができます。
同時に投入可能なジョブ数と最大経過時間の制限
- 1コア(1ノード)〜 559コア(4ノード):
同時に投入できるジョブ数:18ジョブまで,
最大経過時間:2週間
- 560コア(5ノード)〜2239コア(19ノード):
同時に投入できるジョブ数の5ジョブまで,
最大経過時間:2週間
- 2240コア(20ノード)〜4479コア(39ノード):
同時に投入できるジョブ数:3ジョブまで,
最大経過時間:2週間
- 4480コア(40ノード)〜8399コア(74ノード):
同時に投入できるジョブ数:1ジョブまで,
最大経過時間:2週間
- 8400コア(75ノード)〜10080コア(90ノード):
同時に投入できるジョブ数:1ジョブまで,
最大経過時間:1週間
ジョブスケジューリング・ポリシー
現在、gr20001グループのジョブスケジューリングポリシーは「backfill」にて運用されています。
「各ジョブの実行時間制限(-t)をもとに計算を行い、他のジョブの実行開始時刻に影響を及ぼさない場合のみ、追越しが発生する。たとえば、大規模ジョブが開始されるまでの間に実行を完了できる小さなジョブを走らせることで資源を有効活用できる。各ジョブの実行時間制限(-t)をもとに計算を行い、他のジョブの実行開始時刻に影響を及ぼさない場合のみ、追越しが発生する。たとえば、大規模ジョブが開始されるまでの間に実行を完了できる小さなジョブを走らせることで資源を有効活用できる。」
大容量ストレージ領域
/LARGE0/gr20001 (926 TB) と/LARGE1/gr20001 (926 TB) が使えます。 ユーザー名のディレクトリを作成し、お使いください。 ディスク容量には限りがありますので、不要なファイルは消去してください。
FAQ
ジョブを投入できません
- 許可されたCPU時間を超過した。
許可されたCPU時間を超過すると、ジョブ投入時に以下のエラーが発生します。sbatch: error: Batch job submission failed: User's group not permitted to use this partition
show_my_time [a|b|c]コマンドで許可されたCPU時間と利用時間が確認できます。 "Use ratio"が90%を超えた場合、CPU時間の延長をこちらで申請することができます。 - 同時投入可能ジョブ数を超過した
同時に投入できるジョブ数には上限があります。上限を超えると、ジョブ投入時に以下のエラーが発生します。salloc: error: Job submit/allocate failed: Job violates accounting/QOS policy (job submit limit, user's size and/or time limits)
ジョブが実行状態になりません
- 多くのジョブが先に投入されている。
qgroupコマンドを使い、システムの利用状況を確認してください。 - 要求資源が大きすぎる。
qgroupコマンド使い、利用状況を確認してください。要求コア数(ALLOC)が最低保証数(MIN)を超えると、システム全体の状況によっては保留状態となります。 - 大きな資源を要求するジョブが先に投入されている。
ジョブ投入時に経過時間上限値(-t)を最小限とすることで、先行ジョブに影響を及ぼさない範囲で追い越す可能性が高まります。 - 優先順位が低下している。
過去2週間の実行時間に基づき優先順位が動的に計算され、優先順位の高いユーザのジョブから順に実行されます。
ログインできません
- 利用者登録がされていない。
研究代表者に送付した「大型計算機システム利用申請書(KDK)」をkdk-id@rish.kyoto-u.ac.jpに送付してください。利用者番号の有効期限は3月末日までです。 - SSH公開鍵が登録されていない。
学術情報メディアセンターの利用者ポータルでSSH公開鍵を登録してください。
Tips (旧システム向け)
qdelコマンドの補完機能
UNIX シェルには、タブキーで引数を自動入力する補完機能が備わっています。 そして、bash の場合は、bash-completion という追加ライブラリを使って この補完機能を拡張することができます。 Bash-completion を使っている方は(bash-completion の設定をした後で) .bashrc に次の設定を追加してみてください。_qdel() {
local cur=`_get_cword`
COMPREPLY=( $(compgen -W "$(qstat | tail -n +3 | cut -d. -f1)" -- $cur) )
return 0
}
complete -F _qdel qdel
これを有効にすると、qdel の後でジョブ番号が補完されるようになります。
$ qsub ./3000.sh
397571.ja
$ qdel [TAB]
$ qdel 397571
(銭谷誠司さん提供)
システムCの活用事例
KDK System Cは1ノードあたり1.5 TBのメモリを搭載し、大規模な共有メモリを用いた計算や解析が可能です。KDK管理室ではSystem Cの利用を促進するため、活用事例を随時紹介していきます。今回は神戸大学の三宅洋平氏にMatlabを用いた大規模行列 (20万×20万) 計算について紹介して頂きます。計算ノード上で可視化ソフトウェアなどのGUIプログラムを実行することで、大規模な共有メモリや複数の計算コアを用いた解析が行えます(GUIプログラムが大規模メモリや複数計算コアの利用に対応している場合)。特にSystem Cでは、1ノードあたり最大1.44 TBの共有メモリが利用できるため、System B(1ノードあたり最大61.4 GB)に比べて格段に大規模なデータを取り扱うことが可能となっています。System Cの計算ノード上でGUIプログラムを実行する方法を次に示します(Matlabで例を示します)。
- kdk-bc.kudpc.kyoto-u.ac.jpにSSHでログイン
- コマンドライン上で次のように指定し、System Cの使用を宣言
module switch lsf/SystemB lsf/SystemC - コマンドライン上で次のように指定し、GUIプログラムを実行
xrun -q gr20001c -ug gr20001 -A c=32:m=1440G -W 6:00 matlab
上述の方法で起動したMatlab上で大規模な二次元配列を確保し、ごく基本的な行列演算を行う例を示します。下記の例では一辺200000の倍精度2次元配列を3つ用います。各配列のメモリサイズは320 GBなので合計でおよそ960 GBのメモリを用いた演算になります。
a = ones(200000, 200000)*2; % 要素が全て2である一辺200000の正方行列を確保
b = ones(200000, 200000); % 要素が全て1である一辺200000の正方行列を確保
c = a + b; % aとbの和を計算してcに代入
ans = c(1:10,1:10) % cの部分行列の要素を表示
ans =
3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3
whos % 確保した配列の情報を表示
Name Size Bytes Class Attributes
a 200000x200000 320000000000 double
ans 10x10 800 double
b 200000x200000 320000000000 double
c 200000x200000 320000000000 double
この他、GUIプログラムの計算ノード上での実行に関する詳細な情報は、 メディアセンターのウェブでご覧になれます。 なお、KDKキューgr20001cを指定してGUIプログラムの実行を行った場合、通常のバッチジョブでの使用の場合と同様に、使用CPU時間の積算の対象となります点にご留意いただけますようお願いいたします。