20.4.プログラムの実装:Quantitative System Performance

20.3.複数クラス・モデル」の続きです。(目次はこちら

20.4.プログラムの実装


 負荷独立キューイング・センターを持つクローズド・モデル用の平均値解析のFortran実装は単一クラスと複数クラスの場合についてそれぞれ第18章第19章で与えられている。これらのプログラムは負荷依存センターに対応するために以下のように改造することが出来る。

  • 負荷依存センターが特定出来、これらのセンターについて負荷依存レートを提供出来るようにモデル定義セクションを変える。
  • サービスセンター訪問回数を提供出来るようにモデル定義セクションを変える。

前述のように、明示的な訪問回数情報を除去し、よって必要な入力パラメータ数を減らすように滞在時間方程式を書き直すことが出来る。仮にこれがなされたならば、上記に概要をしめした2つのステップは修正されることになる。これは簡単にふれることになる。

  • 個体数ゼロの場合の全ての負荷依存センターでの待ち行列長分布を初期化する。分布の値は空のキューについて1を設定し他の全てのキュー個体数についてはゼロを設定しなければならない。
  • 個々の負荷依存センターについてrtimeの計算(Fortranプログラムのステートメント2001)の代わりに適切なステップ1’を使う。
  • 個々の負荷依存センターについてqlenFortranプログラムのステートメント2003)の代わりに適切なステップ3’を使う。
  • プログラムの出力セクションはqlenステートメント2003によって設定されたと仮定して個々のセンターの待ち行列長をプリントする。負荷依存センターについてはこれは当てはまらない。その平均待ち行列長は繰返し最後で計算される必要があり、その値はqlenに割当てられる。

 FESCの多くの応用については、訪問回数情報の仕様を回避することが最も便利である。これの2つの例は以下の通り。

  • もし訪問回数がモデルの構造によって決定されるならば、それらはユーザによる入力としてではなくて定数として滞在時間方程式に書くことが出来る。例えば、セクション9.3で提案したメモリ制約待ち行列ネットワークは中核サブシステムを1個のFESCで置き換えている。1会話毎に客がこのFESCへ1回の訪問を行っているのは明白であるので、訪問回数は1のはずである。(セクション9.3.1の例を参照)
  • 時々、FESCを、1つの客がその処理の全てを完了するレートと、1つの客の場合のスピードと比較したある数の客を持つサービスセンターのスピードを示す一群の処理レート乗数を指定することで定義することは最も便利である。例えば、密結合デュアル・プロセッサをモデル化する際(セクション11.2参照)1個の客の処理要求時間(例えば10秒)と存在する客の数の関数として、命令が実行される相対レート(例えば1個の客では1.0で2個以上の客では1.8)を与えることでプロセッサを記述するのが最も自然である。この情報は以下の変形を滞在時間方程式1’に適用することによって使用出来る。(ここで我々は記法が簡単であるために単一クラスの場合を示す)。そのキューにj個の客を持つセンターkの処理レート乗数を\alpha_k(j)で示すことにしよう。これは
      • \alpha_k(j)\equiv\frac{\mu_k(j)}{\mu_k(1)}
    • で定義される。次に以下のように単一クラス滞在時間方程式1’を書き直すことが出来る。
      • R_k(n)=\frac{V_k}{\mu_k(1)}\Bigsum_{j=1}^n\frac{j}{\alpha_k(j)}p_k(j-1|n-1)
    • キュー内に1客ある場合の処理レートの逆数はまさに1訪問あたりの処理時間(S_k)であるから、これは以下をもたらす。
      • R_k(n)=D_k\Bigsum_{j=1}^n\frac{j}{\alpha_k(j)}p_k(j-1|n-1)
    • ここで要求される入力は名目上の処理要求時間と一群の処理レート乗数である。