English versionもあります。
sshの公開鍵と秘密鍵のペアを最初に作成しておきます。作成方法が不明な方はインターネットなどで調べてください。
クイックスタートガイドのページにも情報があります。
CPU点数は、CPUやGPUを使うことによって減ります。
消費点数はシステム毎に設定されているCPUキュー係数とGPUキュー係数により求められます。
システム | CPUキュー係数 | GPUキュー係数 |
---|---|---|
ccap (jobtype=largemem) |
60 / (点/(1ノード * 1時間)) | - |
ccap (jobtype=vnode) |
40 / (点/(1ノード * 1時間)) | - |
ccap (jobtype=core) |
1.0 / (点/(1コア * 1時間)) | - |
ccap (jobtype=gpu) |
1.0 / (点/(1コア * 1時間)) | 30 / (点/(1GPU * 1時間)) |
現在の使用CPU点数、残りのCPU点数を知るためには、showlim -cコマンドを使います。
システム | キュー名 (jobtype) |
演算ノード |
メモリー | 利用単位 | 1ジョブの 制限 |
1グループの制限 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
割当点数 | コア数/GPU数 | ジョブ数 | ||||||||||
ccap | H (largemem) |
TypeF | 7.875GB/core | vnode ノード |
1〜14vnode (64〜896コア) |
300万点以上 100万点以上 30万点以上 10万点以上 10万点未満 |
9,600/72 6,400/48 4,096/28 3,200/12 768/8 |
1,000 | ||||
ccap | H (vnode) |
TypeC | 1.875GB/core | vnode ノード |
1~50vnode (64〜3,200コア) |
|||||||
ccap | H (core) |
TypeC | 1.875GB/core | core | 1〜63コア | |||||||
ccap | H (gpu) |
TypeG | 1.875GB/core | core | 1〜48GPU 1〜16コア/GPU |
キューの設定は下記の通りです。
システム | キュー名 | 演算ノード | 制限時間 | メモリー | 1ジョブあたりのコア数 | グループ制限 |
---|---|---|---|---|---|---|
ccap | 専有利用 | TypeC | 7日間単位 | 1.875GB/core | 応相談 | 許可されたコア数 |
ccfep% jobinfo [-h HOST] [-q QUEUE] [-c|-s|-m|-w] [-n] [-g GROUP|-a] [-n]
以下のオプションで表示する情報を選択します。複数同時に指定することはできません。
何も指定しなければ H 及び専有利用キュー(HR[0-9])のジョブ全てが対象となります。そのため、通常は指定する必要ありません。
利用中/キュー待ち中/ホールド中ジョブの数やCPU数、GPU数を表示します。制限値についても表示されます。
また、各 jobtype の混雑状況も表示されます。
ccfep% jobinfo -s
User/Group Stat:
--------------------------------------------------------------------------------
queue: H | user(***) | group(***)
--------------------------------------------------------------------------------
NJob (Run/Queue/Hold/RunLim) | 1/ 0/ 0/- | 1/ 0/ 0/6400
CPUs (Run/Queue/Hold/RunLim) | 4/ 0/ 0/- | 4/ 0/ 0/6400
GPUs (Run/Queue/Hold/RunLim) | 0/ 0/ 0/- | 0/ 0/ 0/ 48
core (Run/Queue/Hold/RunLim) | 4/ 0/ 0/1200 | 4/ 0/ 0/1200
--------------------------------------------------------------------------------
note: "core" limit is for per-core assignment jobs (jobtype=core/gpu*)Queue Status (H):
----------------------------------------------------------------------
job | free | free | # jobs | requested
type | nodes | cores (gpus) | waiting | cores (gpus)
----------------------------------------------------------------------
week jobs
----------------------------------------------------------------------
1-4 vnodes | 705 | 90240 | 0 | 0
5+ vnodes | 505 | 64640 | 0 | 0
largemem | 0 | 0 | 0 | 0
core | 179 | 23036 | 0 | 0
gpu | 0 | 0 (0) | 0 | 0 (0)
----------------------------------------------------------------------
long jobs
----------------------------------------------------------------------
1-4 vnodes | 325 | 41600 | 0 | 0
5+ vnodes | 225 | 28800 | 0 | 0
largemem | 0 | 0 | 0 | 0
core | 50 | 6400 | 0 | 0
gpu | 0 | 0 (0) | 0 | 0 (0)
----------------------------------------------------------------------
Job Status at 2023-01-29 17:40:12
出力上部の core (Run/Queue/Hold/RunLim) はコア単位で利用する場合の制限値です。
上記出力の場合は最大 1200 コアまで利用できます。jobtype=vnode や jobtype=largemem での利用状況には影響を受けません。
-c オプションを指定すると、ジョブの最新の状態を確認できます。(以前と同様に -l を指定しても問題ありません)
ccfep% jobinfo -c
--------------------------------------------------------------------------------
Queue Job ID Name Status CPUs User/Grp Elaps Node/(Reason)
--------------------------------------------------------------------------------
H 9999900 job0.csh Run 16 zzz/--- 24:06:10 ccc047
H 9999901 job1.csh Run 16 zzz/--- 24:03:50 ccc003
H 9999902 job2.sh Run 6 zzz/--- 0:00:36 ccc091
H 9999903 job3.sh Run 6 zzz/--- 0:00:36 ccc091
H 9999904 job4.sh Run 6 zzz/--- 0:00:36 ccc090
...
H 9999989 job89.sh Run 1 zzz/--- 0:00:11 ccg013
H 9999990 job90.sh Run 1 zzz/--- 0:00:12 ccg010
--------------------------------------------------------------------------------
-c を指定しない場合は、数分ほど古い情報になる場合がありますが、GPU 数や jobtype などの情報も確認できます。
ccfep% jobinfo
--------------------------------------------------------------------------------
Queue Job ID Name Status CPUs User/Grp Elaps Node/(Reason)
--------------------------------------------------------------------------------
H(c) 9999900 job0.csh Run 16 zzz/zz9 24:06:10 ccc047
H(c) 9999901 job1.csh Run 16 zzz/zz9 24:03:50 ccc003
H(c) 9999902 job2.sh Run 6 zzz/zz9 0:00:36 ccc091
H(c) 9999903 job3.sh Run 6 zzz/zz9 0:00:36 ccc091
H(c) 9999904 job4.sh Run 6 zzz/zz9 0:00:36 ccc090
...
H(g) 9999989 job89.sh Run 1+1 zzz/zz9 0:00:11 ccg013
H(g) 9999990 job90.sh Run 1+1 zzz/zz9 0:00:12 ccg010
--------------------------------------------------------------------------------
どこでジョブを実行したのかがわからなくなった場合には -w オプションを追加することで、
ジョブの作業ディレクトリ(PBS_O_WORKDIR)を表示することができます。
ccfep% jobinfo -w
--------------------------------------------------------------------------------
Queue Job ID Name Status Workdir
--------------------------------------------------------------------------------
H 9999920 H_12345.sh Run /home/users/zzz/gaussian/mol23
H 9999921 H_23456.sh Run /home/users/zzz/gaussian/mol74
...
-c とは併用できません。
下記の2つの方法があります
以下はjsubを使ってジョブを投入する方法です
ジョブの投入には、バッチスクリプトが必要です。その際、バッチコマンドをスクリプトの最初に記述しなければなりません。
意味 | ヘッダー部 | 重要度 |
---|---|---|
第一行目 | (csh の場合) #!/bin/csh -f (bash の場合) #!/bin/sh (zsh の場合) #!/bin/zsh |
必須 (どれか一つ) |
使用CPU数 | #PBS -l select=[Nnode:]ncpus=Ncore:mpiprocs=Nproc:ompthreads=Nthread:jobtype=Jobtype[:ngpus=Ngpu] | 必須 |
時間制限 | #PBS -l walltime=72:00:00 | 必須 |
ジョブの開始前後に メールで通知 |
#PBS -m abe | オプション |
ジョブの再実行抑止 |
#PBS -r n |
オプション |
バッチジョブ投入 ディレクトリへの移動 |
cd ${PBS_O_WORKDIR} | 推奨 |
#PBS -l select=3:ncpus=64:mpiprocs=64:ompthreads=1:jobtype=vnode
|
#PBS -l select=1:ncpus=6:mpiprocs=1:ompthreads=1:jobtype=gpu:ngpus=1 |
こちらのページにもいくつかサンプルがあります。
バッチスクリプトが準備できたら、下記のようにジョブを投入します。
ccfep% jsub -q (H|HR[0-9]) [-g XXX] [-W depend=(afterok|afterany):JOBID1[:JOBID2...]] script.csh
計算物質科学スパコン共用事業利用枠としてジョブ投入する場合は、-gオプションをつけます。(XXXは計算物質科学スパコン共用事業利用枠のグループ名)
ジョブの依存関係を-Wオプションで設定できます。正常終了後に実行させる場合はafterok、異常終了後でも実行させる場合はafteranyを指定します。依存関係のあるジョブIDをコロンで区切って指定します。
バッチスクリプトのサンプルは、ccfep:/apl/アプリケーション名/samples/にあります。
--step もしくは --stepany オプションをつけることで、比較的簡単にジョブを順番に実行することができます。
ccfep% jsub -q (H|HR[0-9]) [-g XXX] --step [-W depend=(afterok|afterany):JOBID1[:JOBID2...]] script.csh script2.csh ...
ccfep% jsub -q (PN|PNR[0-9]) [-g XXX] --stepany [-W depend=(afterok|afterany):JOBID1[:JOBID2...]] script.csh script2.csh ...
実行例:
ccfep% jsub -q H --stepany job1.csh job2.csh job3.csh
-v オプションを利用して変数を定義することができます。
変数の名前と値は (変数名)=(値) のコンマ区切りの文字列で指定します。
ccfep% jsub -v INPUT=myfile.inp,OUTPUT=myout.log script.sh
script.sh 中で $INPUT や $OUTPUT がそれぞれ myfile.inp や myout.log に置き換えられます。
-v を複数指定した場合、最後の一つのみが有効になります。ご注意ください。
また、ジョブスクリプトの select= 中の ncpus や jobtype 等の値を置き換えることもできません。
あらかじめjobinfoコマンドで、取り消したいジョブのRequest IDを調べておきます。その後、
ccfep% jdel RequestID
とします。
キュー待ち状態のジョブを実行されないように留めておく(ホールドする)ことができます。
あらかじめjobinfoコマンド等でジョブIDを調べておいた上で以下のコマンドを実行することでジョブをホールドできます。
ccfep% jhold RequestID
ホールドしたジョブを解放するには、
ccfep% jrls RequestID
とします。
ジョブの終了日時、経過時間、CPU 点数等の情報を joblog コマンドで得ることができます。
ccfep% joblog [-d 日数] [-o item1[,item2[,...]]]
期間指定をしない場合には今年度実行したジョブの情報を表示します。以下のオプションも利用できます。
表示される項目を-oオプションを使ってカスタマイズすることができます。itemには以下のキーワードを指定することができます。
ccfep% joblog -d 10 -o jobid,start,finish,point
ccfep% joblog -y 2020 -o jobid,finish,point,Workdir
ccfep% joblog -d 2 -o all
各種ライブラリ、MPI環境等の導入状況についてはパッケージプログラム一覧のページをご覧下さい。
ジョブスクリプト中、select 行で MPI プロセスの数を mpiprocs に、OpenMP のスレッド数を ompthreads に正しく設定して下さい。
例: 合計 12 CPU で 4 MPI プロセス、3 OpenMP スレッドの場合は ncpus=12:mpiprocs=4:ompthreads=3 となります。
センター側で導入したアプリケーションのサンプル( /apl/(アプリ名)/samples 以下に有り)も参考にして下さい。
jsub で実行する場合、ompthreads で指定した値が自動的に指定されます。
スクリプト内で OMP_NUM_THREADS 環境変数で手動指定しても問題ありません。
当然ですが、jsub で実行しない場合(フロントエンドノードでのテスト場合等)は OMP_NUM_THREADS 環境変数を設定する必要があります。
jsub で実行する場合、MPI が使うホストリストのファイル名が PBS_NODEFILE 環境変数に入ります。
センター側で導入している MPI 環境(Intel MPI, OpenMPI)ではこの環境変数を自動的に読み込むため、
いわゆる machine file 指定を省略して実行できます。
例: 4 MPI * 3 OpenMP ハイブリッド並列の例
#!/bin/sh
#PBS -l select=1:ncpus=12:mpiprocs=4:ompthreads=3:jobtype=core
#PBS -l walltime=24:00:00
cd $PBS_O_WORKDIR
mpirun -np 4 /some/where/my/program options
2018年7月よりEnvironment Modules(moduleコマンド)の利用も可能です。詳細については、こちらのページをご覧ください。
下記の項目を全てご記入の上、rccs-admin[at]ims.ac.jp宛(迷惑メール対策のため、@を[at]に置換しています)に送信してください。
有料ソフトウェアの場合、導入できないことがあります。
jobinfo, jsub, jdel, jhold, jrls, joblog については上に説明があります。
ccfep% g16sub [-q "QUE_NAME"] [-j "jobtype"] [-g "XXX"] [-walltime "hh:mm:ss"] [-noedit] \
[-rev "g16xxx"] [-np "ncpus"] [-ngpus "n"] [-mem "size"] [-save] [-mail] input_files
ccfep% g16sub -rev g16c01 -walltime 24:00:00 -np 12 my_gaussian_input.gjf
formchk の実行についてはこちらの FAQ を参考にしてください。
ccfep では waitest コマンドで実行開始時間が予測できます。各ジョブが walltime 一杯まで実行されるという前提の元で実行開始時間を予測します。
そのため、細かな誤差を無視すれば waitest の出力は最悪予測になります。
一方でジョブ種類に依存する優先度や振り分けの設定や救済措置等により後続のジョブに順番を追い抜かれる場合もあるので、確実性はあまり高くありません。
jobinfo -s で出力されるキューの空き状態なども確認した上でご利用ください。
待ち状態にあるジョブの実行開始時間予測:
$ waitest [jobid1] ([jobid2] ...)
指定したジョブスクリプトを投入した場合の開始時間予測:
$ waitest -s [job script1] ([jobscript2] ...)
(ターミナル上では緑や赤の色付けはありません)
[user@ccfep2]$ waitest 4923556
Current Date : 2019-10-15 14:32:30
2019-10-15 14:32:30 ...
2019-10-15 16:40:44 ...
2019-10-15 22:26:07 ...
2019-10-16 00:43:43 ...
2019-10-16 03:03:11 ...
2019-10-16 05:58:00 ...
2019-10-16 11:34:12 ...
Job 4923556 will run at 2019-10-16 13:03:11 on ccnn500,ccnn496,ccnn497,ccnn494,ccnn495,ccnn489.
Estimation completed.
[user@ccfep2]$ waitest -s run_small_4N.sh run_small_6N.sh run_small_8N.sh
Current Date : 2019-10-15 14:34:39Job Mapping "run_small_4N.sh" -> jobid=1000000000
Job Mapping "run_small_6N.sh" -> jobid=1000000001
Job Mapping "run_small_8N.sh" -> jobid=10000000022019-10-15 14:34:39 ...
2019-10-15 16:40:52 ...
2019-10-15 22:26:15 ...
2019-10-16 00:43:51 ...
2019-10-16 03:03:18 ...
2019-10-16 05:58:08 ...
2019-10-16 11:34:10 ...
Job 1000000001 will run at 2019-10-16 13:03:18 on ccnn500,ccnn496,ccnn497,ccnn494,ccnn495,ccnn489.
2019-10-16 13:28:41 ...
2019-10-16 16:00:36 ...
2019-10-16 20:52:10 ...
2019-10-17 01:08:27 ...
Job 1000000002 will run at 2019-10-17 03:03:18 on ccnn458,ccnn329,ccnn515,ccnn520,ccnn373,ccnn437,ccnn380,ccnn352.
2019-10-17 03:33:56 ...
2019-10-17 06:43:51 ...
2019-10-17 08:50:03 ...
2019-10-17 11:34:10 ...
2019-10-17 13:03:18 ...
2019-10-17 16:08:16 ...
2019-10-17 18:35:08 ...
2019-10-17 20:36:56 ...
2019-10-17 22:38:49 ...
Job 1000000000 will run at 2019-10-18 00:18:34 on ccnn760,ccnn789,ccnn791,ccnn787.
Estimation completed.
(優先度や振り分けの関係で、大規模ジョブが小規模ジョブより入りやすいことがあります。)
一般的なジョブの種類については定期的に予測を行っており、その結果は以下のコマンドで確認できます。
[user@ccfep2]$ waitest --showref
ccfep% showlim (-cpu|-c|-disk|-d) [-m]
ccfep% showlim -c
ccfep% showlim -c -m
ccfep% showlim -d -m
remshコマンドを使うと、演算ノードのramdiskのようにフロントエンド(ccfep)から直接アクセスできないファイルへアクセスできます。
remsh hostname command options
remsh ccnnXXX ls /ramd/users/zzz
remsh ccnnXXX cat /ramd/users/zzz/99999/fort.10 | tail
ジョブを実行しているノード名はjobinfoコマンドより確認できます。
https://ccportal.ims.ac.jp/contact
をご参照下さい。