HOME > システム > FX10 > FX10 利用の手引き > 第8章 プログラムの実行

第8章 プログラムの実行

8.1 概要

 FX10 スーパーコンピュータシステムでは、ログインノード、インタラクティブノード、計算ノードで、それぞれの特徴に合わせた計算サービスを行っています。長時間あるいは大規模な計算を行う場合はバッチジョブをご利用ください。 また、計算ノードと同じアーキテクチャであるインタラクティブノードで会話的にジョブ実行 (インタラクティブジョブ) できる環境も用意していますので、プログラムのデバッグ実行などでご利用ください。  


システムのご利用イメージ


【ご注意ください】
 SR16000システム で利用しているジョブ実行スクリプトとは互換性はありません。新たに作成して頂く必要があります。


▲ 第8章 プログラムの実行 TOPへ

8.2 インタラクティブジョブとバッチジョブ

 インタラクティブジョブ、バッチジョブは以下の表 (表 1. ~ 表 4.) にあるとおり、利用するノード数や実行制限 (経過) 時間により、適切なキュー (ジョブクラス、リソースグループ) に自動的にジョブが割当られ、実行されます。


表 1.インタラクティブジョブとバッチジョブの主な用途、特長
主な用途、特長
インタラクティブジョブ 短時間、小規模ジョブでデバッグ利用。トークンを消費しない。同時実行数 1 本のみ
バッチジョブ 長時間、大規模ジョブ実行。トークンを消費する。複数ジョブ実行可能

8.2.1 インタラクティブジョブ

 概要でもご紹介している通り、インタラクティブジョブとは、バッチジョブで実行する環境 (計算ノードと同じ環境) で、会話的にジョブ実行 (操作) が行えるジョブ処理形態です。バッチジョブで大規模・長時間実行する前に事前に動作確認が行えるなど、デバッグ環境としての利用環境を提供しています。また、バッチジョブとは異なり、トークンを消費せず、ジョブ実行が可能です。


【ご注意ください】
 バッチジョブとは異なり、会話的にジョブ実行するため、同時実行数は 1 本です。また、インタラクティブジョブで要求されたノード数が確保されるまで、インタラクティブジョブの実行が開始されず、端末がロック状態となることがあります (インタラクティブジョブ実行前に、ノードの空きがあるか確認 (pjstat --nodeuse コマンドで確認できます) されることをお勧めします)。

表 2.Oakleaf-FX ジョブクラス制限値 (インタラクティブジョブ)
指定キュー名 (キュー名) 最大ノード数 実行制限
(経過)時間
メモリー容量(GB)
interactive interactive_n1
interactive_n8
1
8
2 時間
10 分
28 GB
28 GB

表 3.Oakbridge-FX ジョブクラス制限値 (インタラクティブジョブ)
指定キュー名 (キュー名) 最大ノード数 実行制限
(経過)時間
メモリー容量(GB)
interactive interactive_bn1
interactive_bn4
1
4
2 時間
10 分
28 GB
28 GB

8.2.2 バッチジョブ

 長時間、複数ノードを利用するジョブは、バッチジョブとして実行します (SR16000システムで利用しているジョブ実行スクリプトとは互換性はありませんので、新たに作成して頂く必要があります)。また、3 章でもご案内している通り、バッチジョブの実行にはトークンが必要です (ジョブの実行時に必要なトークンが無くなった時点でジョブは実行できなくなります)。
 バッチジョブには、ステップジョブ (複数のバッチジョブを連続した処理として扱い、ジョブの実行順序関係や依存関係を指定することで、ジョブチェイン機能を実現します。ステップジョブは複数のサブジョブから構成され、各サブジョブは同時に実行されることはありません) 機能についても提供しています。
 また、トークンの追加申込の受付が締め切られた後の場合で、ジョブ実行時に必要なトークンが「なし」あるいは「不足」の利用者について、計算リソースに余裕がある場合にはジョブの実行を行えるように「非優先ジョブクラス (低プライオリティキュー) 」の設定(提供)を行う場合があります。詳細については、「非優先ジョブクラスについて」をご覧ください。

表 4.Oakleaf-FX ジョブクラス制限値 (バッチジョブ)
指定キュー名 (キュー名) 最大ノード数 実行制限
(経過)時間
メモリー容量(GB)
debug debug 1 ~ 240 30 分 28 GB
short short 1 ~ 72 6 時間 28 GB
regular small
medium
large
x-large
12 ~ 216
217 ~ 372
373 ~ 480
481 ~ 1,440
48 時間
48 時間
48 時間
24 時間
28 GB
28 GB
28 GB
28 GB

表 5.Oakbridge-FX ジョブクラス制限値 (バッチジョブ)
指定キュー名 (キュー名) 最大ノード数 実行制限
(経過)時間
メモリー容量(GB)
long long 24 ~ 576 168 時間 28 GB

表 6.ジョブクラス制限値 (同時投入・実行数)
パーソナル
コース
グループコース
1 2 ユーザ単位 グループ単位
最大投入数 8 16 制限なし 最大同時実行本数 × 4
12 ノードの場合は 48
24 ノードの場合は 60
最大同時実行
本数
2 4 制限なし 申込ノード数が 12ノードの場合は 12本
24ノードの場合は 15本
以降24ノード単位で3本づつ追加される
最大ノード数
(ジョブ単位)
24 96 グループ管理者が設定していない場合は 最大ノード数 (1,440ノード) まで利用可能 1,440
▲ 第8章 プログラムの実行 TOPへ

8.3 ジョブ管理システム操作 (インタラクティブジョブ、バッチジョブで利用するコマンド)

 FX10 スーパーコンピュータシステムのジョブ管理システム (インタラクティブジョブ、バッチジョブ) で使用する主なコマンドは以下の通りです。


表 7.ジョブ管理システム操作コマンド
機能 コマンド名 (HA8000・SR16000) NQS コマンド
ジョブの投入 pjsub qsub
ジョブの削除 pjdel qdel
ジョブの状態表示 pjstat qstat

8.3.1 ジョブの投入 (pjsub)

 インタラクティブジョブ、バッチジョブの投入を行うときに使用するコマンドです。主なオプション等は以下の通りです。

                  表 8. pjsub ジョブ操作コマンド

pjsub ジョブ操作コマンド

                  表 9. 主なオプション

主なオプション

8.3.2 ジョブの削除 (pjdel)

 インタラクティブジョブ、バッチジョブの削除 (ジョブキャンセル) を行うときに使用するコマンドです。

                  表 10. pjdel ジョブ操作コマンド

pjdel ジョブ操作コマンド

8.3.3 ジョブの状態表示 (pjstat)

 インタラクティブジョブ、バッチジョブの状態 (実行待ち、実行中など) を確認するときに使用するコマンドです。主なオプション等は以下の通りです。

                  表 11. pjstat ジョブ操作コマンド

pjstat ジョブ操作コマンド pjstat ジョブ操作コマンド

▲ 第8章 プログラムの実行 TOPへ

8.4 ジョブスクリプトの書き方・実行例

 ジョブを投入・実行するには、pjsub コマンドを実行します (8.3.1 を参照)。ここでは、インタラクティブジョブの実行までの流れ、ジョブスクリプトを使用したバッチジョブの実行までの流れを簡単に説明します。

8.4.1 インタラクティブジョブ実行例

 インタラクティブジョブを実行する場合には、pjsub コマンドに --interact オプションを指定し、実行します。

インタラクティブジョブの実行例(1)
インタラクティブジョブの実行例(2)

8.4.2 バッチジョブ実行例

 バッチジョブスクリプトを記述しジョブを投入します。本節では、簡単な例を示していますが、FX10 スーパーコンピュータシステムでは、ローカルファイルシステムを利用するためのジョブステージング機能、ステップジョブ、また、ジョブの実行ノード形状 (1 次元・2 次元・3 次元) などを指定することも可能です (この場合、どの計算ノードでプロセスを生成するかなどの、細かな指定 (設定) が必要となります)。
 FX10 スーパーコンピュータシステム利用の上での基本的な動作、チューニングに関する事項・詳細等については、利用支援ポータルで公開している、「利用手引書」や、ジョブ運用ソフトウェア「エンドユーザ向けガイド」をご覧ください。


ジョブの実行形態 例示
逐次ジョブ (1 ノードあたり 1 プロセス実行) 実行例 (1) を参照
スレッド並列ジョブ実行 (1 ノードあたり 1 プロセス、複数スレッド) 実行例 (2) を参照
MPI ジョブ実行 (1 ノードあたり 1 プロセス実行) 実行例 (3) を参照
MPI ジョブ実行 (1 ノードあたり複数プロセス実行) 実行例 (4) を参照
ハイブリッド並列ジョブ実行 (1 ノードあたり複数プロセス、複数スレッド実行) 実行例 (5) を参照

バッチジョブの実行例(1)~(3)
バッチジョブの実行例(4)~(5)
バッチジョブの実行確認 (イメージ)
バッチジョブの実行確認 (イメージ)
▲ 第8章 プログラムの実行 TOPへ

8.5 ジョブスケジューリングのルール

 FX10 スーパーコンピュータシステムではフェアシェア機能、バックフィル機能によるジョブスケジューリング方式で、ジョブの実行サービスを行っています。ジョブスケジューリングについては、ジョブの実行状況等について調査を行い、最適なスケジューリング方法を検討・実現していく予定です。

  • フェアシェア (ジョブスケジューリング) 機能
    過去に使用した計算資源実績と申込コース・申込ノード数に基づき、ジョブの実行優先度を動的に決定して実行する機能です。特定のグループや利用者に計算資源割り当てが偏ることがないようにジョブをスケジューリングする方式です。
  • バックフィル機能
    実行優先度の高いジョブが実行待ちになっている場合 (ノードを大量に使用する) でも、優先順位が低いジョブで、実行優先度の高いジョブの実行開始を遅延させずに計算資源が確保出来る場合には、優先度の高いジョブよりも先にジョブを実行開始させる機能です。バックフィル機能は、計算資源を無駄なく効率的に利用するために導入している機能ですが、大規模ジョブが流れにくくなる場合がありますので、現在、方式改善等を検討しています。
▲ 第8章 プログラムの実行 TOPへ

8.6 計画停止機能 (デッドラインスケジューリング機能)

 センターが計画した日時までにジョブの実行が終了するジョブのみをジョブスケジューリング (ジョブ実行) する機能です。FX10 スーパーコンピュータシステムでは、月末処理日などのシステム停止を予定している場合や、大規模 HPC チャレンジなどの場合に、本機能を使用してジョブスケジューリングしています。

▲ 第8章 プログラムの実行 TOPへ

8.7 ステップジョブ

 FX10 スーパーコンピュータシステムでは、ステップジョブと呼ばれる、投入した複数のジョブを 1 つのまとまり(ジョブ)として扱い、その中で実行順序、依存関係をもたせて実行する機能があります。
 ステップジョブは、pjsub コマンドに --step オプション、--sparam オプションを指定してジョブの依存関係を設定し投入します (オプションの詳細については、利用手引書、マニュアルを参照してください)。複数のジョブを投入することになりますが、ステップジョブを構成する各ジョブは同時に実行されることはありません。
 また、ステップジョブの実行状況については、pjstat に -E オプションを指定することで確認できます。

ステップジョブの実行
ステップジョブの実行 (イメージ)
▲ 第8章 プログラムの実行 TOPへ

8.8 ファイルステージング機能

 FX10 スーパーコンピュータシステムでは、ステージング機能を提供しています。ステージング機能とは、ジョブ実行開始前または、ジョブ実行終了時に指定したファイルを共有ファイルシステム・ローカルファイルシステム間で転送する機能です。
 ステージング機能を使用することで、ジョブが利用するファイルシステムを各計算ノードのローカルファイルシステムにすることで、他のジョブとの入出力競合を減らすことができます。また、ステージングに掛かる処理については、ジョブ経過時間制限値に含まれませんので、計算時間の有効利用が可能です。なお、ローカルファイルシステムに保存できるファイル容量は、ジョブで使用するノード数に応じて変化します (1 ノード利用あたり、240 GB。16 ノード利用した場合は、約 3.8 TB まで利用可能となります)。
 ステージング機能の詳細については、利用手引書、マニュアルを参照してください。

  • ステージイン
    ジョブが使用するファイルをローカルファイルシステムへ転送する機能
  • ステージアウト
    ジョブが使用したファイルを共有ファイルシステムへ転送する機能
【注意事項】
  • インタラクティブジョブではステージング機能は利用できません。
  • ジョブの実行終了時にローカルファイルシステムに作成されたファイルは全て削除されます。
  • ステージイン完了後に共有ファイルシステム上のファイルを更新しても、転送済みのファイルには更新内容は反映されません。
ステージングの実行 (イメージ)
ステージングの実行 (イメージ)
ステージングの実行 (イメージ)
▲ 第8章 プログラムの実行 TOPへ