地球シミュレータ 地球シミュレータ
  • TOP
  • English
  • お問い合わせ
  • アクセス
 
 ES-Repository
ジョブスケジューリング

地球シミュレータは基本的にはバッチ処理システムです.バッチ処理システムとして,Network Queuing System II(NQSII)が使用されています.

実行キューとして,LバッチキューとSバッチキューと呼ばれる2種類のキューが用意されています.Lバッチキューは大規模ジョブの実行を目的としています.Sバッチキューは,Lバッチキューで実行される大規模ジョブの初期値データ作成等のジョブの前処理や,大規模ジョブの実行結果の後処理等での使用を目的としています.ユーザは実行するジョブに最適なキューを選択します.

大規模ジョブで使用する各計算ノードはユーザディスクへアクセスすることはできません.これはディスクへのアクセス性能を十分に確保するためです.そのため,ジョブの実行に必要なファイルはジョブの実行前に各ノードのワークディスクへコピーする必要があります.これをステージインといいます.このステージングにかかる時間を如何に隠すかがジョブスケジューリングでは重要になります.
ジョブスケーリングの主な流れは以下のようになっています.

  1. (1) ノード割り当て
  2. (2) ステージイン (ファイルをユーザディスクからワークディスクへコピー)
  3. (3) ジョブエスカレーション (再スケジューリング)
  4. (4) ジョブ実行
  5. (5) ステージアウト (ファイルをワークディスクからユーザディスクへコピー)

ジョブが投入されると,スケジューラは使用可能なノードを探し,実行開始時刻を決定します(1).そして,それらのノードに対してステージングを行います (2).ステージインが完了すると,そのジョブは実行開始時刻まで待機します.この間に,実行開始時刻を早めることができる場合には,再スケジューリングが行われます(ジョブエスカレーション)(3).実行開始時刻になると,スケジューラはそのジョブを実行します(4).ユーザが宣言した経過時間を過ぎるか,計算が終了すると,スケジューラはそのジョブを終了させます.ジョブの終了後,スケジューラはステージアウトを実行します(5).

ジョブを実行するには,バッチスクリプト(図)を記述します.バッチスクリプトには,使用するノード数や経過時間等の計算資源やジョブの実行に必要なファイル等を記述します.

:バッチスクリプトの記述例.#PBSで始まる行は,NQSIIへの指示行です.

バッチスクリプトを記述したら,ユーザはログインサーバからバッチスクリプトを投入し,ジョブの実行が終了するまで待ちます.その間,ユーザはコマンドやブラウザでジョブの処理状況を確認することができます.
計算ノードのスケジューリングやステージイン,ステージアウト等の処理は,バッチスクリプトの記述に従ってシステムが自動的に行います.