[目次] [1ページ目に戻る] [次ページ] [質疑応答]


(2/34)
2.数値風洞用スケジューラの機能

 本章では、数値風洞用スケジューラの機能として、並列計算機システム用に開発した基本機能と航技研の運用方式・運用環境等を考慮した付加機能について説明する。

2.1 スケジューラの基本機能

(1)システム資源要求量と待ち時間に応じたジョブ優先度の設定機能
 ジョブをシステム資源要求量に応じた適切なターンアラウンドタイムで実行するために、ジョブ優先度はシステム資源要求量や待ち時間等の関数によって任意に設定する。数値風洞では、要求PE台数、要求CPU時間、待ち時間、ジョブ属性、緊急度等によって優先度を設定している。

(2)ジョブ優先度の動的制御機能
 ジョブを「待ち時間の限界値を越えた最優先ジョブ」、「待ち時間が一定値を越えた優先ジョブ」、「待ち時間が一定値以下の非優先ジョブ」の3つに分類し、それぞれ3つのキューで優先度順に管理する。なお、ジョブを分類するためのパラメータは、優先度と同様にシステム資源要求量や待ち時間等の関数によって任意に設定する。また、ジョブは常時適切なキュー、適切な優先度で処理するために適時ジョブ優先度や所属すべきキューを見直し、動的にジョブを管理する。

(3)PEの有効利用を考慮したジョブの起動(注1)機能
 PEを有効利用するために、優先度の高いキューの先頭ジョブから順にジョブ起動条件を満たしているすべてのジョブを起動する。処理中に起動条件を満たさないジョブがあっても、割り当て可能な空きPEがある限り後続のジョブの起動を試みる。

(4)長時間待ちジョブの優先実行機能
 システム資源要求量に応じた適切なターンアラウンドタイムでジョブを処理するために、待ち時間の限界値を超えた最優先ジョブが起動できない場合には、他のジョブの起動をすべて停止して実行中のジョブの終了を待ち、最短時間で実行させる。PEリザーブ機能は、他のジョブの起動をすべて停止して最優先で実行した場合の開始、終了時刻を予想し、その間に必要となる台数のPEを予約する機能である。この場合、PEの有効利用を図るために、当該ジョブの実行を阻害する恐れのないジョブは起動する。なお、数値風洞では複数のジョブに対しPEリザーブを行うことはない。

(5)システムの立ち上げ・停止等を考慮した起動可否判定機能
 ジョブ起動の可否を、空きPE台数と要求台数の比較のみで判断した場合には、システム停止等を予定時刻に行えない、起動優先ジョブのPEリザーブ時間を正確に予定できない等の事態が発生する。そのため、システムの立ち上げ・停止等を考慮して割り当て可能なPE台数を算出し、起動の可否を判定する。

2.2 航技研運用方式実現のための機能

(1)起動ジョブの制限機能

a)1PEリクエスト(注2)実行数の制限
 ジョブの優先度は主としてシステム資源要求量と待ち時間で決定しているため、1PEのリクエストは相対的に短時間で優先度が上がり、実行リクエストがすべて1PEのものとなる恐れがある。そのため、1PEリクエストの実行数を制限する。

b)同一ユーザジョブの投入ジョブ数、実行リクエスト数および使用PE台数の制限 同一ユーザが一度に大量のジョブを投入した場合、システム内に過大なジョブが滞留したり、特定ユーザのリクエストばかり実行される可能性があるため、同一ユーザのシステム内ジョブ数、同時実行リクエスト数、同時使用PE台数を制限する。
c)ジョブの最大要求PE台数およびCPU時間の制限

 数値風洞では、昼間は小規模ジョブやデバッグジョブを優先実行し、ユーザが少ない夜間は大規模ジョブの実行を行い、プログラム生産性の向上を図るために、時間帯毎に実行可能なジョブの要求PE台数やCPU時間を制限する。

(2)ユーザタイムジョブの優先実行機能

 システム資源使用量が多いためジョブがなかなか処理されず、研究に支障をきたす恐れのあるユーザなどに対し、夜間や休日のように利用者が少ない時間帯を選んで一般ジョブより優先的に実行するユーザタイム運用を行う。ユーザタイム運用のジョブは一般ジョブより優先度を一定値上げて処理するだけでなく、システムの独占使用も可能である。その場合、投入された一般ジョブはキューへ登録されても実行されないか、あるいはキューへの登録もリジェクトするかを指定することができる。なお、ユーザタイムジョブはユーザタイム運用が終了した時点で一般ジョブとなる。

(3)優先ユーザジョブの優先実行機能

 システム内の緊急性の高いジョブを優先ユーザジョブと呼び一般ジョブより優先的に処理する。優先ユーザジョブは、優先ユーザとして登録されたユーザの全ジョブおよびシステム管理者により高優先度化されたジョブである。

(4)デバッグジョブの優先実行機能

 プログラム開発中のジョブの開発環境を改善するために、CPU時間が一定値以下のジョブをデバッグジョブと呼び、一般ジョブより優先的に処理する。ユーザタイムジョブ、優先ユーザジョブ、デバッグジョブをどの程度優先的に処理するかは任意に定義できるが、数値風洞では、ジョブは優先ユーザジョブ、ユーザタイムジョブ、デバッグジョブ、その他一般ジョブの順に優先しており、優先ユーザジョブやユーザタイムジョブはその目的により、優先化時刻順に処理している。

(5)優先度の調整機能

 航技研計算機システムは、一般研究者、研修生、システム管理者等多様なユーザが使用するばかりでなく、使用目的も多岐に渡っている。そのため、基本機能ではユーザ属性に基づくユーザ優先度の設定が可能であるが、さらにユーザごとの優先度調整を可能とする。

(6)リクエスト(注2)の逐次実行機能

 航技研では、CPU制限時間を超えるプログラム処理を行うジョブが非常に多いため、長時間プログラムの処理を複数リクエストに分割実行可能とする。この場合、リクエストの逐次実行を行うため、以下の2項目を保証する必要がある。
  a)処理分割されたリクエスト間での実行開始順序の保証
  b)処理分割されたリクエスト間での同時実行しないことの保証
 しかし、項目a)に関しては、数値風洞では同一ジョブ内の各リクエストは先頭から逐次実行するため、b)の項目のみスケジューラで実現する。

(7)システム状態情報出力機能

 ジョブの受付時、実行開始時、終了時等にジョブ情報を収集し、システムの混雑状態やジョブの処理状態を随時表示可能とする。

2.3 運用環境を考慮した機能

(1)自動化プログラムとの連携機能

 数値風洞には、電源制御操作等を自動化するための「自動化プログラム」が、FEPおよび数値風洞のCPに搭載されている。自動化プログラムは、あらかじめ設定されている自動化スケジュールテーブル内のイベント情報を参照して、運用時間帯毎の運用PE電源グループ(注3)番号、ジョブキュー毎の多重度(同時実行可能な最大ジョブ数)を認識し、システム、冷却設備およびPEの電源操作処理とジョブクラス毎の多重度設定処理等を行う。スケジューラも自動化プログラムと同様のスケジュールテーブルが必要であるが、それぞれ独自のテーブルを使用した場合には情報の不整合が発生する恐れがあるため、自動化プログラムとの連携を取っている。

(2)使用可能PEの認識機能

 一般的に故障PE台の発生は設置台数に比例するため、PE設置台数の多い数値風洞では故障PEの発生、回復の情報を常時収集することにより故障台数を把握している。したがって、運用時間帯毎の使用可能PE台数は、自動化プログラムに設定されている運用時間帯毎のPE電源グループ番号とその時点での故障PEの情報からを認識することができる。

(3)システム状況に基づくスケジューリング可否判定機能

 数値風洞のジョブはFEPを介して入出力処理等を行っているため、FEPでシステム異常が発生した時や運用の切替え中は新たなジョブのスケジューリングを停止する必要がある。そのため、ジョブのスケジューリングの停止または再開事象が発生した場合にはFEPはスケジューラにその旨を通知し、スケジューラはFEPからの情報をもとにスケジューリングの可否を判定する。

(4)複数ジョブグループの設定機能

 数値風洞では256MBメモリのPEと1GBのメモリのPEが設置されているため、緊急度の高い256MBのジョブを処理するジョブグループ、256MBの一般ジョブを処理するジョブグループ、1GBの一般ジョブを処理するジョブグループを設定している。このように、緊急度や要求するシステム資源が異なるジョブを効率よく管理するために、複数のジョブグループの設定機能を設ける。

(5)複数スケジューリングアルゴリズムの共存機能

 ジョブが翻訳、結合・編集、実行という過程を経る場合、ジョブの優先度は実行時のシステム資源要求量と待ち時間によって決定されるべきである。しかし、数値風洞では、FEPで行われる翻訳処理、結合・編集処理時には実行時のシステム資源要求量が認識できないことから、先着順等の一般的なアルゴリズムで処理せざるを得ない。また、特権ジョブがシステム内に複数存在した場合には先着順に処理することが望ましい。そのため、並列計算機システム用に考案したアルゴリズム(以下、PP方式と呼ぶ)だけでなく、先着順のアルゴリズム(以下、FCFS方式と呼ぶ)を用意し、ジョブグループ毎、あるいは使用システム毎に指定のアルゴリズムで処理を行う。

表1 NQSの主な関数と機能

 

(注1) 実行待ちジョブの中から実行すべきジョブを決定すること。また、そのために必要となる処理を行うこと。
(注2) 数値風洞における処理の単位。3リクエストから構成されるジョブを投入した場合、数値風洞では3つの独立したリクエストとして処理される。
(注3) PEの電源制御の単位であり、8台または12台のPEから成る15の電源グループがある。


[目次] [1ページ目に戻る] [次ページ] [質疑応答]