5.9. ジョブ実行コマンドのオプション¶
pjsubのオプション一覧を示します。
5.9.1. 基本オプション¶
ジョブを実行するグループや環境変数の引渡しなど、pjsubコマンドの基本的なオプションを示します。
オプション名 |
機能 |
---|---|
-L "resource=value[,...]" |
ジョブの資源に関するオプションを指定します。
詳細は「リソース指定」に示します。
|
--mpi "parameter[,...]" |
MPI ジョブの各種パラメーターを指定します。
詳細は「MPIオプション」に示します。
|
--gname "gname" |
ジョブ実行時に、ジョブのプロセスが所属するグループ名を指定します。
グループ名(
gname )、グループID(gid )のどちらでも指定可能です。ジョブ管理ノードに指定されたグループが存在しない場合、ジョブ投入はエラーとなります。
|
--help |
ヘルプを表示します。 |
-j |
標準エラー出力を標準出力へ出力します。 |
-m "mailoption[,...]" |
ジョブのステータスなどの情報について、メール通知を行うかを指定します。
mailoptionは
man pjsub を参照ください。本オプション使用時は、
--mail-list も使用してメールアドレスを必ず指定してください。 |
--mail-list "mailaddress[,...]" |
メールの送信先を指定します。複数指定時はコンマ (",") で区切って指定します。指定する文字列のサイズは 255文字までです。
メールアドレスを間違えて入力した場合は宛先に届きません、また、エラー通知等もないため注意してください。
|
--name "name" |
ジョブの名前を指定します。ジョブ名には63バイトまで指定できます。
本オプションを指定しない場合、コマンド行で指定されたスクリプトファイル名がジョブ名として設定されます。
スクリプトファイル名が指定されていない場合は、"STDIN" がジョブ名として設定されます。
ジョブ名の先頭文字は、半角アルファベットのみです。
name には、"/" を含んだ文字列は指定できません。ジョブ名およびスクリプトファイル名に使用できる文字は次の通りです。
|
--restart |
このオプションが指定されたとき、ジョブ実行環境停止または異常発生によりジョブ実行が中断された場合に、再実行を試みます。
このオプションを指定しない場合(デフォルト値)は、再実行しません。
|
-X |
全ての環境変数を計算ノードに転送します。 |
ヒント
スーパーコンピュータ「富岳」では運用を補助するために「富岳」固有の環境変数およびpjsubオプションを用意しています。必要に応じてこれらのオプションも利用してください。
5.9.2. リソース指定¶
-L
に続いてresource=value
の形式で指定します。resource
を複数指定する場合は、カンマで区切って指定します。項目名 |
内容 |
---|---|
-L "node=nodeshape" |
ジョブに割り当てるノード数および形状を指定します。
ノードの形状指定に続けて、ノードの割り当て方法を指定できます。
利用できるノード数、形状、割り当て方法はリソースグループごとに設定されています。 リソースを参照ください。 |
-L "elapse=elapsetimelimit" |
ジョブ単位の経過時間制限値を設定します。リソースグループごとに最大値を設定しています。
elapsetimelimit は、 "[[時間:]分:]秒" の形式で指定します。
|
-L "elapse=min_limit-max_limit"
-L "elapse=min_limit-"
|
経過時間制限値を範囲で指定します。
min_limit,max_limitに指定できる値はリソースグループごとに異なります
(min_limit,max_limitの確認方法は後述。)
経過時間がmin_limit に達しても、経過時間が最長で max_limit に達するまで実行を継続できます。
ただし、経過時間がmin_limit を超えて実行しているとき、次の場合は、経過時間がmax_limit未満でもジョブは強制終了させられます。
|
-L "rscgrp=rscgname" |
ジョブを投入するリソースグループ名 |
5.9.2.1. 最低実行時間を指定したジョブ実行¶

$ pjacl -u $USER -g $GROUP --rg small
(中略)
pjsub option parameters
(-L/--rsc-list) lower upper default
(elapse=) 00:01:00 72:00:00 00:01:00
(adaptive elapsed time min) 00:01:00 72:00:00 00:01:00 # バッチジョブのminLimit
(adaptive elapsed time max) 00:01:01 144:00:00 144:00:00 # バッチジョブのmaxLimit
$ pjacl -u $USER -g $GROUP --rg int
(中略)
pjsub option parameters
(中略)
(--interact -L) lower upper default
(elapse=) 00:00:10 06:00:00 00:00:10
(adaptive elapsed time min) 00:00:10 06:00:00 00:00:10 # 会話型ジョブのminLimit
(adaptive elapsed time max) 2 48:00:00 02:00:00 # 会話型ジョブのmaxLimit
注意
経過時間指定を範囲で指定したジョブは、pjalterコマンドによるパラメータ変更の対象外となります。 投入後にパラメータ(経過時間制限値、リソースグループ、リソースユニット、ユーザ内優先度)を変更することはできません。
経過時間指定を範囲で指定したジョブは、ジョブ振り分け運用の対象外となります。 振り分け先のリソースグループに対する直接投入においては、範囲の指定が可能です。
5.9.2.2. 低優先度ジョブ実行¶
「富岳」では、割り当て資源量を消費せずに低優先度でジョブを実行することができます。
以下のリソースグループで低優先度ジョブを実行できます。
spot-large
spot-small
spot-int
spot-middle
注意
有償課題は低優先度利用の対象外です。
低優先度ジョブはノードが空いている場合に実行されます。
通常ジョブが投入されている場合は、投入時期に関係なくノードが空くまで低優先度ジョブの開始が待たされます。
低優先度ジョブのリソースグループの設定は、優先度以外は通常リソースグループ(spot-XXXのXXX部分)と同じです。
例:ジョブの経過時間を4時間に指定し、後続のジョブが割り当てられない場合に最大で12時間まで実行を継続する場合
[_LNlogin]$ pjsub -L "elapse=4:00:00-12:00:00" job.sh
ジョブの経過時間を4時間以内に指定する場合は、経過時間の範囲指定は不要です。この場合、ジョブは指定時間が経過すると終了します。
[_LNlogin]$ pjsub -L "elapse=4:00:00" job.sh
注意
指定時間の下限に4時間を超える値を指定するとエラーになります。また、指定時間の上限に12時間より大きい値を指定するとエラーになります。
以下はエラーとなる例です。
-L "elapse=6:00:00-12:00:00" (指定時間の下限が4時間を超えている)-L "elapse=4:00:00-24:00:00" (指定時間の上限が12時間を超えている)誤った実行時間指定でジョブを投入した場合は以下のエラーメッセージが出力されます。ジョブの実行時間指定を修正して再度ジョブを投入してください。
[ERR.] PJM 0057 pjsub elapse=18000 is greater than the upper limit (14400).- 実行時間上限を超えて実行しているジョブは、後続のジョブがスケジューリングされると強制終了されます。後続のジョブがスケジューリングされジョブが途中終了した場合は、ジョブはCCL状態に遷移し、ジョブ統計情報の「REASON」欄に「ANOTHER JOB STARTED」と表示されます。pjstatコマンド等で確認してください。
5.9.3. MPIオプション¶
--mpi "parameter[,parameter…]"
オプションで設定します。parameter
を複数指定する場合は、カンマで区切って指定します。MPIに関するオプションの詳細については、「MPIジョブ投入時の指定」を参照してください。
項目名 |
内容 |
---|---|
--mpi "shape= shape " |
静的に起動するプロセスの形状を指定します。
shape には、shape=N1 、shape=N1xN2 、または、shape=N1xN2xN3 を指定できます。-L(--rsc-list) オプションのnode で指定した値と同じ次元数を指定する必要があります。省略した場合、
node で指定した値と同じ値が使用されます。vnode オプションを指定した場合には、1 のみ指定できます。 |
--mpi "proc= num " |
静的に起動する最大のプロセス数を、
num に指定します。省略した場合、
shape で指定した値の積となります。shape で指定した値の積×ノード内のCPU コア数より大きい値を指定した場合、ジョブの受付が拒否されます。vnode オプションを指定した場合には、vnode オプションで指定した core 数以上の値を指定した場合もジョブの受付が拒否されます。 |
--mpi "max-proc-per-node= mppnnum " |
プログラムが 1ノードに生成する最大のプロセス数を指定します。
省略した場合、1ノードに生成する最大プロセス数は、
proc で指定した値を 1ノード内に生成するプロセス数に変換した値となります。1ノード内の CPUコア数よりも大きい値が指定された場合、または、
proc で指定した値を 1ノード内に生成するプロセス数に変換した値が mppnnum を超えていた場合、ジョブの受付が拒否されます。vnode オプションを指定した場合には、ジョブの受付が拒否されます。 |
5.9.4. ジョブ統計情報¶
-s
、または、-S
を指定し、ジョブを投入します。オプション名 |
機能 |
---|---|
-s
(小文字)
|
投入したジョブの統計情報をファイルに出力します。
-S オプションとの併用はできません。指定したファイルに出力したい場合は、
--spath オプションを指定します。 |
-S
(大文字)
|
-s オプションで出力される情報に加えて、投入したジョブのノード単位の情報を出力します。-s オプションとの併用はできません。指定したファイルに出力したい場合は、
--spath オプションを指定します。 |
--spath pathname |
ジョブの統計情報を、
pathname で指定されたファイルに出力します。-s 、または、-S オプションを同時に指定する必要があります。 |
5.9.5. ジョブスクリプト内環境変数¶
環境変数名 |
内容 |
---|---|
PJM_BULKNUM |
バルク番号(バルクジョブだけ設定) |
PJM_COMMENT |
pjsubオプションの |
PJM_ENVIRONMENT |
ジョブ種別が入ります。BATCH、または、INTERACTとなります。 |
PJM_JOBDIR |
ジョブスクリプト実行開始時のカレントディレクトリのパス |
PJM_JOBID |
ジョブIDが入ります。 |
PJM_JOBNAME |
ジョブ名が入ります。 |
PJM_LOCALTMP |
第1階層ストレージ上のノード内テンポラリ領域のパスが入ります。 |
PJM_SUBJOBID |
サブジョブIDが入ります。 |
PJM_STEPNUM |
ステップジョブのステップ番号が入ります。 |
PJM_LLIO_SHAREDTMP_SIZE |
第1階層ストレージ上の共有テンポラリ領域のサイズ(バイト)が入ります。 |
PJM_LLIO_LOCALTMP_SIZE |
第1階層ストレージ上のノード内テンポラリ領域のサイズ(バイト)が入ります。 |
PJM_LLIO_AUTO_READAHEAD |
ジョブが複数回続けて第1階層ストレージまたは第2階層ストレージ上の連続した領域を読み込もうとした場合、自動的に先読みをするか否かの動作です
|
PJM_LLIO_ASYNC_CLOSE |
第1階層ストレージおよび第2階層ストレージ上のファイルのクローズを非同期クローズにするか否かの動作です
on(非同期クローズ)が設定されている場合、ファイルのクローズ時に書出し完了は保証されません。off(同期クローズ)が設定されている場合、ファイルのクローズ時に書出し完了は保証されます。 |
PJM_LLIO_CN_CACHE_SIZE |
第1階層ストレージ上の計算ノード内キャッシュのサイズ(バイト)が入ります。 |
PJM_LLIO_CN_CACHED_WRITE_SIZE |
第1階層ストレージへの書込み時にキャッシュするか否かのしきい値(バイト)が入ります。 |
PJM_LLIO_CN_READ_CACHE |
第1階層ストレージまたは第2階層ストレージから読み込んだファイルを計算ノード内キャッシュにキャッシュするか否かの動作です。
|
PJM_LLIO_SIO_READ_CACHE |
第2階層ストレージから計算ノードへ読み込んだファイルを第1階層ストレージにキャッシュするか否かの動作です。
|
PJM_LLIO_STRIPE_COUNT |
第1階層ストレージにファイルを分散配置する際のファイルあたりのストライプ数が入ります。 |
PJM_LLIO_STRIPE_SIZE |
第1階層ストレージにファイルを分散配置する際のストライプサイズ(バイト)が入ります。 |
PJM_LLIO_UNCOMPLETED_FILEINFO_PATH |
未書出しファイル情報の出力先パスが入ります。 ジョブ終了時に、第2階層ストレージへの書出しが完了していないファイルがキャッシュに残っていた場合に、ファイル名の一覧を出力するファイルのパスです。 |
PJM_O_HOME |
pjsubコマンドを発行したユーザの環境変数 |
PJM_O_LANG |
pjsubコマンドを発行したユーザの環境変数 |
PJM_O_LOGNAME |
pjsubコマンドを発行したユーザの環境変数 |
PJM_O_PATH |
pjsubコマンドを発行したユーザの環境変数 |
PJM_O_SHELL |
pjsubコマンドを発行したユーザの環境変数 |
PJM_O_HOST |
pjsubコマンドを発行したユーザの環境変数 |
PJM_O_WORKDIR |
pjsubコマンドを発行したユーザのカレントディレクトリが入ります。 |
注意
上記表で示した環境変数と同名の環境変数を、pjsubコマンドの
-x
オプションに指定しても、その値は無視され、上記表で示した値になります。pjsubコマンドを実行するシェル上で設定されている環境変数は、指示がない限り、ジョブ内には引き継がれません。ジョブ内に環境変数を引き継ぐためには、pjsub コマンドの
-X
オプションを指定してください。ただし、上記表で示した環境変数と同名の環境変数は、pjsubコマンドの-X
オプションを指定しても、その値は無視され、上記表で示した値になります。
5.9.6. MPIプロセスに設定される環境変数¶
環境変数名 |
内容 |
---|---|
PMIX_RANK |
MPIプロセスのランク番号が10進数で指定されます。 |
PLE_RANK_ON_NODE |
計算ノード内でのMPIプロセスの識別番号が10進数で設定されます。
識別番号とは、同じ計算ノード上の同じMPI_COMM_WORLDに属するMPIプロセスの中で一意に割り当てられる番号で、0から始まります。
|
5.9.7. 実行開始時刻の指定¶
--at
オプションを使い、以下の書式で指定します。書式 |
説明 |
---|---|
--at YYYYMMDD[hhmm] |
YYYY は年、MM は月、DD は日を表します。
hh は時、mm は分を表します。hhmm を省略した場合は 0時0分が指定されたものとみなします。
また、秒単位では指定できません。
|
[_LNlogin]$ pjsub --at 202208011511 job.sh # 2022年8月1日15:11 に job.sh の実行を開始する
注意
実行開始時刻の指定(
--at
オプション)は、有償利用の方のみ利用可能です。実行開始時刻を指定したジョブは、資源に空きがあっても、指定時刻より前に実行されることはありません。また、資源の空き状況によっては、指定時刻より後に実行される場合があります。
会話型ジョブに対しては、実行開始時刻は指定できません。指定した場合は無視されます。