4.シミュレーション
NQS−JSや前節の外部スケジューラの有効性を厳密に検証するためには、実運用中の並列スーパーコンピュータのジョブの実行スケジュールを実際に変化させてスループットおよびターンアラウンドがどのような影響を受けるかを調べる必要がある。また、NQS−JSや外部スケジューラの適切なパラメータセットを探すために同一ジョブ集合に対する実験を繰り返す必要もある。しかし、運用中のベクトル並列スーパーコンピュータと利用者ジョブを用いて実験を行うことは利用者サービスに重大な支障をもたらす。また、そのようなスーパーコンピュータのサービスを長期間に渡って停止させて実験を行うことも事実上不可能である。
そこで、今回は、現有のVPP700/56を大幅に単純化した仮想的な並列計算機の動作をシミュレーションプログラムによって調べ、種々のスケジューリングポリシーの比較に役立てることにした。 シミュレーションプログラムは、 以下のような仮想的な並列計算機とそれに対して投入されるジョブ群をモデル化したものである。
- 並列ジョブが投入されるのは32PEからなるパーティションただ1つである。
- 並列ジョブにはSIPLEXモードとSHAREモードがある。SIMPLEXモードのジョブは、他のジョブと物理PEを占有する。SHAREモードのジョブは、メモリ資源が足りる限り、他のSHAREモードのジョブ1つとPEを共有することができる。 各ジョブがどちらのモードであるかは事前にわかっている。
- このパーティションに投入されるジョブはすべて並列ジョブであり、32PEのうちの8PE、16PE、または32PEを使用する。それぞれは使用するPE数ごとの3つのキューに投入順につながれる。
- 各ジョブが必要とするメモリ資源とCPU時間は事前にわかっている。
- このパーティション内に入出力を担当するPEが4個あり、一部のジョブは、これらのうちのいずれかに入出力を依頼する。どのジョブがどのPEに入出力を依頼するかは事前にわかっている。入出力を担当するPEでジョブ処理を行う場合、それらのジョブの処理効率が通常よりも低下する。
- 複数のジョブからの入出力要求が同一の入出力PEで競合する場合には、それらのジョブの処理効率が通常よりも低下する。
項目 5 および 6 は、入出力専用PEを持たず計算PEで入出力を行う分散メモリ型並列計算機上で行われた入出力性能評価[5] の結果から推測される性質である。しかし、性能低下の度合は個々のハードウェアで異なるため、ここでは恣意的にそれぞれ75%および1/競合ジョブ数に低下するものと仮定した。
このような仮想的な環境のもとで、以下のようなスケジューリングを行った場合のジョブの実行開始終了時刻をシミュレーションによって求めた。
(1)FIFO方式
|
基本的に、ジョブの投入順に実行を開始する。ただし、メモリ不足やI/O競合が発生する場合の対処法により以下の3つの変種を考える。
| |
(1a)単純FIFO
|
空きメモリだけでは次のジョブの実行に不十分な場合、必要なだけ空くまで待つ。ただし、次のジョブの実行を開始するとI/O競合が生じる場合でも、メモリが十分なら実行を開始する。
| |
(1b)FIFO−I/O競合回避
|
空きメモリだけでは次のジョブの実行に不十分な場合、必要なだけ空くまで待つ。次のジョブの実行を開始するとI/O競合が生じる場合、競合が生じない状況になるまで待つ。
| |
(1c)準FIFO−I/O競合・メモリ待機回避
|
空きメモリだけでは次のジョブの実行に不十分であるか、あるいは、I/O競合を起こす場合、他のキューの先頭ジョブを実行する。
| |
(2)固定優先度方式
|
次に実行すべきジョブを探す際に、最も優先度が高いジョブを次に実行する。メモ
リ不足やI/O競合が発生する場合の対処法はFIFO方式と同様である。
| |
(2a)単純固定優先度
(2b)固定優先度 − I/O競合回避
(2c)固定優先度 − I/O競合・メモリ待機回避
(3) 可変優先度方式
|
次に実行すべきジョブを探す際に、最も優先度が高いジョブを次に実行する。後に投入されたジョブに先を越された場合、追い越されたジョブや長時間待機したジョブの優先度を上げる。今回の実験では、1回追い越されるたびに1ずつ、200単位時間経過するたびに10上げている。
| |
(3a)単純可変優先度
(3b)可変優先度 − I/O競合回避
(3c)可変優先度 − I/O競合・メモリ待機回避
上記の各ポリシーを用いた場合の、あるジョブ投入スケジュールに対して200個のジョブ処理が終了するまでの処理時間や、PE数別処理ジョブ数、各種イベントの発生回数等の比較を表2に示す。