Skip to content

ジョブ実行

ジョブサービス

ABCIシステムでは、以下のジョブサービスが利用可能です。

サービス名 説明 サービス課金係数 利用形態
On-demand インタラクティブジョブの実行サービス 1.0 インタラクティブジョブ
Spot バッチジョブの実行サービス 1.0 バッチジョブ
Reserved 事前予約型ジョブサービス 1.5 事前予約

各ジョブサービスで利用可能なジョブ実行リソース、制限事項等については、ジョブ実行リソースを参照してください。また、課金については、課金を参照してください。

On-demandサービス

プログラムのコンパイルやデバッグ、対話的なアプリケーション、可視化ソフトウェアの実行に適したインタラクティブジョブの実行サービスです。

利用方法はインタラクティブジョブ、インタラクティブジョブの実行オプションの詳細はジョブ実行オプションをそれぞれ参照してください。

Spotサービス

対話的な処理の必要がないアプリケーションの実行に適したバッチジョブの実行サービスです。On-demandサービスに比べてより長時間のジョブや、より並列度の高いジョブの実行が可能です。

利用方法はバッチジョブ、バッチジョブの実行オプションの詳細はジョブ実行オプションをそれぞれ参照してください。

Reservedサービス

計算リソースを日単位で事前に予約して利用できるサービスです。On-demandおよびSpotサービスの混雑の影響を受けることなく、計画的なジョブ実行が可能となります。また、Spotサービスの経過時間制限以上の予約日数が取れるため、より長時間のジョブ実行が可能です。

Reservedサービスでは、まず事前予約を行って予約ID (Resv ID)を取得し、この予約IDを用いてインタラクティブジョブやバッチジョブの実行を行います。

予約方法は事前予約を参照してください。インタラクティブジョブやバッチジョブの利用方法、実行オプションはOn-demandおよびSpotサービスと共通です。

ジョブ実行リソース

ABCIシステムでは、計算リソースを論理的に分割した資源タイプを利用して、ジョブサービスにシステムリソースを割り当てます。On-demand、Spot、Reservedのいずれのサービスを利用する場合も、利用者は利用したい資源タイプとその数量を指定して、ジョブの投入/実行、計算ノードの予約を行います。

以下では、まず利用可能な資源タイプについて解説し、続いて同時に利用可能な資源量、経過時間およびノード時間積、ジョブ投入数および実行数に関する制限事項等を説明します。

利用可能な資源タイプ

ABCIシステムには、次の資源タイプが用意されています。

資源タイプ名 説明 割り当て物理CPUコア数 割り当てGPU数 メモリ (GB) ローカルストレージ (TB) Spot及びOn-demandのABCIポイント/1時間(※)
rt_HF ノード占有 96 8 1728 14 7.5
rt_HG ノード共有
GPU利用
8 1 144 1.4 1.5
rt_HC ノード共有
CPUのみ利用
16 0 288 1.4 0.5

(※) rt_HFのReservedは1.5倍

同時に利用可能なノード数

ジョブサービスごとに利用可能な資源タイプとノード数の組み合わせを以下に示します。同時に複数ノードを利用する場合は、資源タイプrt_HFを指定する必要があります。

サービス名 資源タイプ名 ノード数
Reserved rt_HF 1-予約ノード数

経過時間およびノード時間積の制限

ジョブサービス、資源タイプに応じて、ジョブの経過時間制限 (実行可能時間の制限) があります。上限値およびデフォルト値を以下に示します。

サービス名 資源タイプ名 経過時間制限 (上限値/デフォルト)
Spot rt_HF, rt_HG, rt_HC 168:00:00/1:00:00
On-demand rt_HF, rt_HG, rt_HC 12:00:00/1:00:00

また、On-demandおよびSpotサービスで、複数ノードを使用するジョブを実行する場合には、ノード時間積(使用ノード数 × 実行時間)に以下の制限があります。

サービス名 ノード時間積の最大値
Spot 21504 nodes · hours
On-demand 12 nodes · hours

Note

Reservedサービスでは経過時間に制限はありませんが、予約の終了と共にジョブは強制終了します。 Reservedサービスに関する制限の詳細については事前予約を参照してください。

ジョブ投入数および実行数の制限

1ユーザが同時に投入・実行できるジョブ数に以下の制限があります。 予約ノードに投入されたジョブもOn-demandやSpotのジョブと同様にジョブ数のカウントに含まれ、本制約を受けます。

制限項目 制限値
1ユーザあたりの同時投入可能ジョブ数 1000
1ユーザあたりの同時実行ジョブ数 200
1アレイジョブあたりの最大投入可能タスク数 75000

2023年度まで資源タイプごとのジョブ実行数に制限はなく、利用可能な計算リソースから順次割り当てていましたが、 2024年度以降、資源タイプごとにシステムあたりの同時実行ジョブ数に制限を設けます。 なお、対象となるジョブサービスはOn-demandサービスとSpotサービスとなります。 Reservedサービスで予約ノードに投入されたジョブはカウントに含まれません。

資源タイプ システムあたりの同時実行ジョブ数の制限値
rt_HF 736
rt_HG 240
rt_HC 60

ジョブ実行オプション

インタラクティブジョブ、バッチジョブの実行にはqsubコマンドを使用します。

qsubコマンドに関する、主要なオプションを以下に示します。

オプション 説明
-P group ABCI利用グループをgroupで指定します。自分のABCIアカウントが所属しているABCIグループのみ指定できます。本オプションは指定必須です。
-q resource_type 資源タイプresource_typeを指定します。本オプションは指定必須です。
-l select=num[:ncpus=num_cpus:mpiprocs=num_mpi:ompthreads=num_omp] ノード数をnumで、資源タイプに対応したCPU数をnum_cpusで、MPIプロセス数をnum_mpiで、スレッド数をnum_ompで指定します。本オプションは指定必須です。
-l walltime=[HH:MM:]SS 経過時間制限値を指定します。[HH:MM:]SSで指定することができます。ジョブの実行時間が指定した時間を超過した場合、ジョブは強制終了されます。
-N name ジョブ名をnameで指定します。デフォルトは、ジョブスクリプト名です。
-o stdout_name 標準出力名をstdout_nameで指定します。
-j oe 標準エラー出力を標準出力にマージします。
-m n メールの送信を行わないよう指定します。
-m a バッチシステムによりジョブが中止された場合にメールを送信します。(デフォルト)
-m b ジョブ実行開始時にメールを送信します。
-m e ジョブ実行終了時にメールを送信します。
-M mail_address 送信先メールアドレスをmail_addressで指定します。デフォルトはジョブ実行ユーザのABCIに登録されたメールアドレスです。

この他、拡張オプションとして以下のオプションが使用可能です。

オプション 説明
-v RTYPE=resource_type 予約ジョブで利用する資源タイプを指定します。本オプションは予約ノードにジョブを投入する場合に必須です。

インタラクティブジョブ

インタラクティブジョブを実行するには、qsubコマンドに-Iオプションを付け加えます。

$ qsub -I -P group -q resource_type -l select=num [options]

例) インタラクティブジョブを実行 (On-demandサービス)

[username@login1 ~]$ qsub -I -P grpname -q rt_HF -l select=1
[username@hnode001 ~]$ 

Note

On-demandサービスでは、インタラクティブジョブ実行時にABCIポイントが不足している場合、ジョブの実行に失敗します。

バッチジョブ

ABCIシステムでバッチジョブを実行する場合、実行するプログラムとは別にジョブスクリプトを作成します。 ジョブスクリプトには利用する資源タイプ名、経過時間制限値などの資源などのジョブ実行オプションを記述した上で、 実行するコマンド列を記載します。

#!/bin/sh
#PBS -q rt_HF
#PBS -l select=1
#PBS -l walltime=1:23:45
#PBS -P grpname

cd ${PBS_O_WORKDIR}

[Environment Modules の初期化]
[Environment Modules の設定]
[プログラムの実行]

例) CUDAを利用したプログラムを実行するジョブスクリプト例

#!/bin/sh
#PBS -q rt_HF
#PBS -l select=1
#PBS -l walltime=1:23:45
#PBS -P grpname

cd ${PBS_O_WORKDIR}

source /etc/profile.d/modules.sh
module load cuda/12.6/12.6.1
./a.out

バッチジョブの投入

バッチジョブを実行するには、qsubコマンドを使用します。実行後はジョブIDが出力されます。

$ qsub script_name

例) ジョブスクリプトrun.shをバッチジョブとして投入 (Spotサービス)

[username@login1 ~]$ qsub run.sh
1234.pbs1

Note

Spotサービスでは、バッチジョブ投入時にABCIポイントが不足している場合、バッチジョブの投入に失敗します。

ジョブ投入時のエラー

バッチジョブの投入に成功した場合、qsubコマンドの終了ステータスは0となります。 失敗した場合は0以外の値となり、エラーメッセージが出力されます。

バッチジョブの状態の確認

利用者自身が投入したバッチジョブの状態を確認するには、qstatコマンドを利用します。

$ qstat [options]

qstatコマンドの主要なオプションを以下に示します。

オプション 説明
-f ジョブに関する詳細情報を表示します。
-a 利用ノード数などの追加情報を含めて表示します。

例)

[username@login1 ~]$ qstat
Job id                 Name             User              Time Use S Queue
---------------------  ---------------- ----------------  -------- - -----
12345.pbs1             run.sh           username          00:01:23 R rt_HF
項目 説明
Job id ジョブID
Name ジョブ名
User ジョブのオーナー
Time Use ジョブのCPU利用時間
S ジョブ状態 (R: 実行中, Q: 待機中, F: 完了, S: 一時停止, E: 終了中)
Queue 資源タイプ

自身が所属するグループを対象としてバッチジョブの状態を確認するには、qgstatコマンドを利用します。

$ qgstat [options]

qgstatコマンドの主要なオプションを以下に示します。

オプション 説明
-f ジョブに関する詳細情報を表示します。
-a 利用ノード数などの追加情報を含めて表示します。

例)

[username@login1 ~]$ qgstat
Job id                 Name             User              Time Use S Queue
---------------------  ---------------- ----------------  -------- - -----
12345.pbs1             run01.sh         username01        00:01:23 R rt_HF
23456.pbs1             run02.sh         username02        00:01:23 R rt_HF
項目 説明
Job id ジョブID
Name ジョブ名
User ジョブのオーナー
Time Use ジョブのCPU利用時間
S ジョブ状態 (R: 実行中, Q: 待機中, F: 完了, S: 一時停止, E: 終了中)
Queue 資源タイプ

バッチジョブの削除

バッチジョブを削除するには、qdelコマンドを利用します。

$ qdel job_id

例) バッチジョブを削除

[username@login1 ~]$ qstat
Job id                 Name             User              Time Use S Queue
---------------------  ---------------- ----------------  -------- - -----
12345.pbs1             run.sh           username          00:01:23 R rt_HF
[username@login1 ~]$ qdel 12345.pbs1
[username@login1 ~]$

バッチジョブの標準出力と標準エラー出力

バッチジョブの標準出力ファイルと標準エラー出力ファイルは、ジョブ実行ディレクトリもしくは、 ジョブ投入時に指定されたファイルに出力されます。 標準出力ファイルにはジョブ実行中の標準出力、標準エラー出力ファイルにはジョブ実行中のエラーメッセージが出力されます。 ジョブ投入時に、標準出力ファイル、標準エラー出力ファイルを指定しなかった場合は、以下のファイルに出力されます。

  • JOB_NAME.oNUM_JOB_ID --- 標準出力ファイル
  • JOB_NAME.eNUM_JOB_ID --- 標準エラー出力ファイル

例)ジョブ名がrun.sh、ジョブIDが12345.pbs1の場合

  • 標準出力ファイル名:run.sh.o12345
  • 標準エラー出力ファイル名:run.sh.e12345

環境変数

ジョブ実行中に、ジョブスクリプトもしくはコマンドラインで利用できる環境変数は以下の通りです。

環境変数 説明
PBS_ENVIRONMENT バッチジョブの場合"PBS_BATCH"が、インタラクティブジョブの場合"PBS_INTERACTIVE"が割り当てられる
PBS_JOBID ジョブID
PBS_JOBNAME ジョブ名
PBS_NODEFILE ジョブに割り当てられたホストが記載されたファイルへのパス
PBS_LOCALDIR ジョブに割り当てられたローカルストレージへのパス
PBS_O_WORKDIR ジョブ投入時の作業ディレクトリへのパス

Warning

上記の環境変数については、ジョブスケジューラで予約された変数であり、ジョブスケジューラの動作に影響を与える可能性があるためジョブの中で変更しないようにしてください。

事前予約

Reservedサービスでは、計算ノードを事前に予約して計画的なジョブ実行が可能となります。

本サービスで予約可能なノード数およびノード時間積は、以下表の「1予約あたりの最大予約ノード数」、「1予約あたりの最大予約ノード時間積」が上限です。また、本サービスでは、利用者は予約ノード数を上限とするジョブしか実行できません。なお、システム全体で「システムあたりの最大同時予約可能ノード数」に上限があるため、「1予約あたりの最大予約ノード数」を下回る予約しかできない場合や、予約自体ができない場合があります。予約した計算ノードにて各資源タイプが利用可能です。

項目 設定値
最小予約日数 1日
最大予約日数 60日
ABCIグループあたりの最大同時予約可能ノード数 192ノード
システムあたりの最大同時予約可能ノード数 384ノード
1予約あたりの最小予約ノード数 1ノード
1予約あたりの最大予約ノード数 192ノード
1予約あたりの最大予約ノード時間積 64,512ノード時間積

予約の実行

計算ノードを予約するには、qrsubコマンドを使用します。 予約が完了すると、予約IDが発行されますので、予約した計算ノードを使用する際にこの予約IDを指定してください。

Warning

計算ノードの予約は、利用責任者もしくは利用管理者のみが実施できます。

$ qrsub options
オプション 説明
-R YYMMDD 予約開始日をYYMMDDで指定します。
-D days 予約日数をdaysで指定します。
-P group ABCI利用グループをgroupで指定します。
-N name 予約名をnameで指定します。スペース以外の英数字と記号+-_.が指定可能で、最大230文字まで指定できます。
-n numnodes 予約するノード数をnumnodesで指定します。

例) 2025年1月15日から1週間 (7日間) 計算ノード(H)4台を予約

[username@login1 ~]$ qrsub -R 250115 -D 7 -P grpname -n 4 -N "Reserve_for_AI"
R1234.pbs1 UNCONFIRMED

計算ノードの予約が完了した時点でABCIポイントを消費します。 また、発行された予約IDは予約時に指定したABCIグループに所属するABCIアカウントでご利用いただけます。

Note

予約可能なノード数がqrsubコマンドで指定したノード数より少ない場合、エラーメッセージを出力して予約取得に失敗します。

予約状態の確認

予約状態を確認するには、qrstatコマンドを使用します。

$ qrstat [options]

qrstatコマンドの主要なオプションを以下に示します。

オプション 説明
-f, -F 詳細な予約情報を表示します。

例)

[username@login1 ~]$ qrstat
Resv ID         Queue         User     State             Start / Duration / End
-------------------------------------------------------------------------------
R1234.pbs1      R1234         usrname  RN            Wed 10:40 / 1506000 / Sat Feb 01 21:00
項目 説明
Resv ID 予約ID (Resv ID)
Queue キュー名
User 実行ユーザ
State 予約状態 (CO: 予約確定, RN: 予約実行中)
Start 予約開始日 (予約開始時刻は常に午前10時)
Duration 予約期間 (秒)
End 予約終了日 (予約終了時刻は常に午前9時30分)

予約の取り消し

Warning

予約の取り消しは利用責任者もしくは利用管理者のみが実施できます。

予約を取り消すには、qrdelコマンドを使用します。指定したResv IDが存在しない場合、もしくは削除権限のない予約IDが指定されている場合は、エラーとなり削除は実行されません。

例) 予約を取り消し

[username@login1 ~]$ qrdel R1234.pbs1

予約ノードの使い方

予約した計算ノードにジョブを投入するには、qsubコマンドの-qオプションに予約キューを指定します。 予約キューは予約IDのドット(.)より前の文字列、またはqrstatコマンドのQueue欄から確認できます。

さらに、予約ノードで利用する資源タイプをqsubコマンドの-v RTYPE=resource_typeオプションで指定してください。

例) 予約IDR1234.pbs1で予約された計算ノードでrt_HGのインタラクティブジョブを実行

[username@login1 ~]$ qsub -I -P grpname -q R1234 -v RTYPE=rt_HG -l select=1
[username@hnode001 ~]$ 

例) ジョブスクリプトrun.shを予約IDR1234.pbs1で予約された計算ノードにrt_HGのバッチジョブとして投入

[username@login1 ~]$ qsub -P grpname -q R1234 -v RTYPE=rt_HG -l select=1 run.sh
9290.pbs1

Note

  • 予約作成時に指定したABCIグループを指定する必要があります。
  • バッチジョブは予約作成直後から投入できますが、予約開始時刻になるまで実行されません。
  • 予約開始時刻前に投入したバッチジョブはqdelコマンドで削除できます。
  • 予約開始時刻前に予約を削除した場合、当該予約に投入されていたバッチジョブは削除されます。
  • 予約終了時刻になると実行中のジョブは強制終了されます。

予約ノードご利用時の注意

予約は期間中の計算ノードの可用性を保証するものではありません。予約した計算ノードの利用中に一部が利用不可となることがありますので、以下の点をご確認ください。

  • 予約した計算ノードの利用可否状態は、qrstat -f Resv ID コマンドで確認できます。
  • 予約開始前日に一部の予約ノードが利用不可と表示される場合は、予約の取り消し・再度予約をご検討ください。
  • 予約期間中に計算ノードが利用不可となった場合などの時は、お問い合わせのページをご覧の上、abci3-qa@abci.ai までご連絡ください。

Note

  • 予約の取り消しは予約開始前日の午後9時までになります。
  • 計算ノードの空きが無い場合、予約の作成はできません。
  • ハードウェア障害は適宜対応しております。予約開始前日より前の利用不可に対するお問い合わせはご遠慮願います。
  • 予約している計算ノード数変更や予約期間の延長の依頼は対応不可になります。

例) 予約IDR1234.pbs1により予約されたノードを確認する。

[username@login1 ~]$ qrsub -R 250115 -D 7 -P grpname -n 3 -N "Reserve_for_AI"
R1234.pbs1 UNCONFIRMED
[username@login1 ~]$ qrstat -f R1234.pbs1
(skip)
resv_nodes = (hnode015[0]:ncpus=96+hnode015[1]:ncpus=96)+(hnode021[0]:ncpus=96+hnode021[1]:ncpus=96)+(hnode022[0]:ncpus=96+hnode022[1]:ncpus=96)
Authorized_Users = username@login2
Authorized_Groups = groupname

課金

On-demandおよびSpotサービス

On-demandおよびSpotサービスでは、ジョブ実行開始時にジョブが使用予定のABCIポイントを経過時間制限値を元に計算し、減算処理を実施します。ジョブ実行終了時に実際の経過時間を元にABCIポイントを再計算し、返却処理を実施します。

On-demandおよびSpotサービスの課金については、ご利用料金を参照ください。

Note

  • 小数点5位以下は切り捨てられます。
  • 最低経過時間(1.8秒)より短い経過時間ジョブを実行した場合、ABCIポイントは最低経過時間を元に計算されます。

Reservedサービス

Reservedサービスでは、予約完了時に予約期間を元にABCIポイントを計算し、減算処理を実施します。予約の取り消しをしない限り、返却処理は実施されません。予約にて消費するポイントは、グループの利用責任者の消費ポイントとしてカウントされます。

課金情報については、ご利用料金を参照ください。

Note

計算ノード(H)の予約は資源タイプrt_HFとして扱われます。