5.4. バルクジョブ¶
バルクジョブは、同一実行モジュールのパラメータを変えながら複数回実行する場合に効率的なジョブです。
パラメータと関連づけて入力ファイルを変更しながらジョブを実行する事も可能です。パラメータごとに実行されるジョブをサブジョブと呼びます。

5.4.1. ジョブの投入¶
--bulk
オプションを付けて投入します。。--sparam
オプションを指定します。[書式]
$ pjsub --bulk --sparam startbulkno-endbulkno
オプション
説明
--bulk
必須オプションです。
--sparam
必須オプションです。
startbulkno
投入する最初のサブジョブに割り当てる番号(0~999999)を指定します。
endbulkno
投入する最後のサブジョブに割り当てる番号(0~999999)を指定します。
注意
--interact
、--step
、または、--mswk
と同時に指定された場合、指定されたオプションの組合せが不正であるとしてエラーになります。
例)バルク番号を0から9まで指定した場合
[_LNlogin]$ pjsub --bulk --sparam "0-9" run.sh
上記では、サブジョブを10個起動し、0から9のパラメータを増分1で渡します。
5.4.2. バルクジョブスクリプト¶
以下にバルクジョブのスクリプト例を示します。
入力データ、出力データは各バルク番号をファイル名に含むように作成し、ジョブスクリプト内では、${PJM_BULKNUM}
でバルク番号を取り扱います。
データファイルが indata.0 から indata.9 まで10種類あり、それぞれを入力としてプログラムを実行する場合
#!/bin/sh -x
#PJM -L "node=12"
#PJM -L "rscgrp=small"
#PJM -L "elapse=01:00:00"
#PJM --mpi "max-proc-per-node=4" # 1ノードあたりに生成するMPIプロセス数の上限値
#PJM -g groupname
#PJM -x PJM_LLIO_GFSCACHE=/vol000N
#PJM -S
#
IN_DATA=./indata.${PJM_BULKNUM} # ${PJM_BULKNUM} はバルク番号に展開。
OUT_DATA=./outdata.${PJM_BULKNUM}
mpiexec --stdin ${IN_DATA} --of-proc ${OUT_DATA} ./a.out
5.4.3. サブジョブID¶
[バルクジョブのサブジョブIDの例]
ジョブID |
バルク番号 |
サブジョブID |
---|---|---|
12345 |
1 |
12345[1] |
12345 |
2 |
12345[2] |
注釈
ジョブIDが「12345」、バルク番号が「1」の場合、サブジョブIDは「 12345[1] 」になります。
5.4.4. ジョブ実行結果の参照¶
[サブジョブごとに出力されるファイル]
形式
説明
ジョブ名.サブジョブID.out
サブジョブが標準出力に書き出したデータです。
ジョブ名.サブジョブID.err
サブジョブが標準エラー出力に書き出したデータです。
ジョブ名.サブジョブID.stats
サブジョブの統計情報が出力されたファイルです。
[バルクジョブごとに出力されるファイル]
形式
説明
ジョブ名.ジョブID.stats
バルクジョブの統計情報が出力されたファイルです。
注意
ジョブ名は、pjsubコマンドで指定したジョブスクリプトのファイル名になります。
ジョブ名の先頭が半角数字の場合、出力ファイル名の先頭に文字 "J" が付加されます。
出力ファイル名で、ジョブ名の部分(先頭に付加される文字"J"も含む)は、63 文字までです。
ジョブスクリプトではなく、標準入力からジョブを投入した場合は、ジョブ名の部分は "STDIN" となります。
バルクジョブに対し、標準出力や標準エラー出力を同じファイル名に指定した場合、各サブジョブの出力が混在します。
例)バルクジョブ実行結果ファイル名
sample.sh.i70990.stats # バルクジョブの統計情報ファイル
sample.sh.e70990[0].err # サブジョブ0の標準エラー出力の結果ファイル
sample.sh.i70990[0].stats # サブジョブ0の統計情報の出力ファイル
sample.sh.o70990[0].out # サブジョブ0の標準出力の結果ファイル
sample.sh.e70990[1].err # サブジョブ1の標準エラー出力の結果ファイル
sample.sh.i70990[1].stats # サブジョブ1の統計情報の出力ファイル
sample.sh.o70990[1].out # サブジョブ1の標準出力の結果ファイル
sample.sh.e70990[2].err # サブジョブ2の標準エラー出力の結果ファイル
sample.sh.i70990[2].stats # サブジョブ2の統計情報の出力ファイル
sample.sh.o70990[2].out # サブジョブ2の標準出力の結果ファイル
注意
出力先の指定がない場合、pjsubを実行した時のカレントディレクトリに出力されます。