8.5.2.ハイブリッド・モデル化(1):Quantitative System Performance

8.5.1.大域バランス(4)」の続きです。(目次はこちら

8.5.2.ハイブリッド・モデル化


 ハイブリッド・モデル化はシミュレーションと解析のよい点を組み合わせる結合シミュレーション/解析解法である。非分離可能モデルをもたらすコンピュータ・システムの側面を表現することが出来るようにシミュレーション用いられる。解析手法は効率のために用いられる。
 この本の主要な関心事であるところの解析手法に対するハイブリッド・モデル化の関係を理解するために、我々はまずモデル化のためのシミュレーションの方法についての短い調査結果を示さなければならない。我々は特定のタイプのシミュレーションを、確率的でイベント駆動のシミュレーションを説明することを選択した。他の方法は可能であるが、イベント駆動シミュレーションはコンピュータ・システム性能解析にとって最も役に立つものである。
 シミュレーション手法は本来、実験的である。しかし、現実のハードウェアと作業負荷要素で物理的な実験を行う(つまり、ベンチマーク実験)のではなくて、物理的システムの機能的操作がソフトウェアで表現される。ソフトウェアはシミュレーション時計を維持し、それは実験のシミュレートされた経過時間を追跡する。このソフトウェアはまたシミュレートされた全ての物理デバイスの状態の経過を追跡する。状態は通常、どのシミュレートされたジョブが個々のデバイスで処理中あるいはキューにあるかについての情報や、個々のデバイスで進行中の操作の完了時刻についての情報を含む。そのソフトウェアは、最も近い将来に起こるはずのイベントを選択し、そのイベント時刻にシミュレーション時計を更新し、イベントの発生に対応してシミュレーションの状態を変更することでシミュレーションを進める。状態の変更は未来のシミュレーション時刻での新しいイベントのスケジューリングを含むこともある。例えば、シミュレーション時刻が104.35秒で、次に起こるべきイベントが時刻104.50秒でのCPUで処理中のジョブの完了であるとしよう。シミュレーションは104.50秒まで時計を進め、CPUキューからそのジョブを除き、そのジョブが次に処理を要求するデバイスのキューにそれを入れる。それはまたCPUで新しいジョブを処理中にし(待っているジョブがあると仮定して)、モデルの入力パラメータである、ある確率分布に従ってそのジョブの処理時間を選び(例えば0.23秒)、ある未来のシミュレーション時刻に(この場合104.73秒に)そのジョブの出発をスケジュールする。シミュレーション駆動機構の最後の仕事はシミュレーション実験に関する性能統計を記録することである。例えば、駆動機構はシミュレートされたCPUがビジーであった期間のシミュレートされた秒の総数を数え続けるだろう。実験の最後に、その量のシミュレートされた秒の総数に対する割合がCPU稼動率の見積り値となる。
 この記述から、シミュレーションは現実のシステムの操作のほぼ任意の量の詳細を表現することが出来ることが明らかであるはずである。もちろん、より詳細を組み込むにつれて、シミュレーションの規模と費用は増加する。よって、役に立つためには、シミュレーション・モデルを形成する際に若干の抽象化が必要である。例えば、コンピュータ・システムのあるシミュレーション・モデルは我々が研究してきた待ち行列ネットワーク・モデルと同一かもしれない(ということはシミュレーション・モデルと待ち行列ネットワーク・モデルの入力パラメータが同じであるということである)。あるいは、シミュレーション・モデルは、CPUで用いられる優先スケジューリング規律のより正確な表現のような、より詳細を含むかもしれない。最後に、大量の詳細を持つ(そしてほとんど抽象化されていない)モデルは(ページ・フォールト・レートを決定するのに使用するために)メモリ参照パターンや(実効CPU速度を決定するのに使用するために)命令ミックスに関する情報を含むかもしれない。よって、シミュレーション・モデルは、我々が関心を持っている待ち行列モデルの上位集合である。シミュレーションの利点は詳細を組み込むことが出来ることである。シミュレーションの欠点はその費用である。つまり、信頼できる性能見積りを得るのに要求される計算量や、より詳細なモデルをパラメータ化するのに必要なより詳細な情報を得るのに要求される労力や、相互に依存する大量のパラメータを持つモデル内で性能に影響を与える重要なパラメータについての洞察を得るのに要求される労力、である。
 シミュレーションのこの特性に留意すれば、我々は基本的なハイブリッド・モデル化手法の記述に進むことが出来る。解析すべきシステムの(非分離可能)モデルが与えられたとして、分離して都合よく解くことが出来るサブシステム(サービスセンターの総体)を分離する。(個体数依存スループットをえるためにサブモデルを解析的に解くことによって)サブモデルを表現するフロー等価サービスセンターを作成し、元々のモデル内のそのサブシステムをそのFESCで置き換える。最後に、この簡約されたモデルをシミュレーションを用いて解く。もちろんこの図式でのシミュレーションと待ち行列ネットワークのモデル化の役割を逆にすることは可能である(低レベル・モデルをシミュレーションによって、高レベル・モデルを解析的に解くことが出来るように)。これは例えば、大規模コンピュータ・システムの複雑なI/Oサブシステム・コンポーネントをモデル化するために実行されるだろう。その残りは分離可能ネットワークとして適切に表現出来る。

8.5.2.ハイブリッド・モデル化(2)」に続きます。