(57)【特許請求の範囲】
【請求項１】
並列計算機をプラットホームとするマルチタスクシステムの性能予測システムであって、
マルチタスク環境でのハードウェアのリソース競合と前記ハードウェアを利用するソフトウェアレベルでのリソース競合とを、プログラムのセマフォ若しくはクリティカルセクションの構造は待ち行列モデルにおけるトークンとして、実行状態にあるプログラムおよびスレッドは待ち行列モデルにおける客として、並列計算機は待ち行列モデルにおけるプロセッサシェアリングによるサーバとして、前記サーバ数は並列計算機の並列度として、待ち行列網モデルへのマッピングを行うモデル化手段と、
タスクを実行中の客数の状態に依存して決まるタスクの単位時間あたりの処理量を、全サーバが全て該タスクを処理すると仮定した場合の単位時間あたりの処理量に、該タスクが確保しているトークンの数を全タスクが確保しているトークンの数とサーバ数の大きい方の値で除した値を、掛けたものとして全てのタスクを実行中の客数の状態に対して算出し、
異なるタスク間での前記タスクの単位時間あたりの処理量の比を客数の状態毎に算出し、
前記算出された比の積形式として定義される前記待ち行列網モデルの近似解析式に前記算出された比を代入することで客数の状態の確率分布を算出し、前記算出した客数の状態の確率分布により、前記マルチタスクシステムの性能指標を予測する性能指標予測手段
とを含むことを特徴とするマルチタスクシステムの性能予測システム。
【請求項２】
並列計算機をプラットホームとするマルチタスクシステムの性能予測システムを用いるマルチタスクシステムの性能予測方法であって、
前記マルチタスクシステムの性能予測システムに、マルチタスク環境でのハードウェアのリソース競合と前記ハードウェアを利用するソフトウェアレベルでのリソース競合とを、プログラムのセマフォ若しくはクリティカルセクションの構造は待ち行列モデルにおけるトークンとして、実行状態にあるプログラムおよびスレッドは待ち行列モデルにおける客として、並列計算機は待ち行列モデルにおけるプロセッサシェアリングによるサーバとして、前記サーバ数は並列計算機の並列度として、待ち行列網モデルへのマッピングをモデル化手段に行わせる第一ステップと、
タスクを実行中の客数の状態に依存して決まるタスクの単位時間あたりの処理量を、全サーバが全て該タスクを処理すると仮定した場合の単位時間あたりの処理量に、該タスクが確保しているトークンの数を全タスクが確保しているトークンの数とサーバ数の大きい方の値で除した値を、掛けたものとして全てのタスクを実行中の客数の状態に対して算出させ、異なるタスク間での前記タスクの単位時間あたりの処理量の比を客数の状態毎に算出させ、前記算出された比の積形式として定義される前記待ち行列網モデルの近似解析式に前記算出された比を代入させることで客数の状態の確率分布を算出させ、前記算出した客数の状態の確率分布により、前記マルチタスクシステムの性能指標の予測を性能指標予測手段に行わせる第二ステップ、
とを含むことを特徴とするマルチタスクシステムの性能予測方法。
【請求項３】
並列計算機をプラットホームとするマルチタスクシステムの性能予測方法プログラムを記録した記録媒体であって、
コンピュータに、モデル生成部において、マルチタスク環境でのハードウェアのリソース競合と前記ハードウェアを利用するソフトウェアレベルでのリソース競合とを、プログラムのセマフォ若しくはクリティカルセクションの構造は待ち行列モデルにおけるトークンとして、実行状態にあるプログラムおよびスレッドは待ち行列モデルにおける客として、並列計算機は待ち行列モデルにおけるプロセッサシェアリングによるサーバとして、前記サーバ数は並列計算機の並列度とするモデルとして、待ち行列網モデルへのマッピングを行わせる第一ステップと、
タスクを実行中の客数の状態に依存して決まるタスクの単位時間あたりの処理量を、全サーバが全て該タスクを処理すると仮定した場合の単位時間あたりの処理量に、該タスクが確保しているトークンの数を全タスクが確保しているトークンの数とサーバ数の大きい方の値で除した値を、掛けたものとして全てのタスクを実行中の客数の状態に対して算出させ、異なるタスク間での前記タスクの単位時間あたりの処理量の比を客数の状態毎に算出させ、前記算出された比の積形式として定義される前記待ち行列網モデルの近似解析式に前記算出された比を代入させることで客数の状態の確率分布を算出させ、前記算出させた客数の状態の確率分布により、前記マルチタスクシステムの性能指標を予測させる第二ステップを含むプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマルチタスクシステムの性能予測システム及び予測方法並びにその方法プログラムを記録した記録媒体に関し、特に並列計算機をプラットホームとするマルチタスクシステムの性能予測システム及び予測方法並びにその方法プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
並列計算機における向上度（並列度（同時に実行状態になるタスクやスレッドの最大数）に対する処理性能の向上を示す指標）の予測手法が１９６７年に発行されたＡＦＩＰＳ  Ｃｏｎｆｅｒｅｎｃｅ  Ｐｒｏｃｅｅｄｉｎｇｓの第４８３〜４８５頁に掲載された”Ｖａｌｉｄｉｔｙ  ｏｆ  ｔｈｅ  ｓｉｎｇｌｅ−ｐｒｏｃｅｓｓｏｒ  ａｐｐｒｏａｃｈ  ｔｏ  ａｃｈｉｅｖｉｎｇ  ｌａｒｇｅｓｃａｌｅ  ｃｏｍｐｕｔｉｎｇ”と題するＧ．Ａｍｄａｈｌによる論文に掲載されている。この従来の方法においては、シングルタスク環境が想定されており、その仮定のもとに、並列度に対する処理性能の向上度の予測手法が示されている。
【０００３】
又、１９８８年に発行されたＣＡＣＭ  Ｖｏｌ．３１（５）の第５３２−５３３頁に掲載された”Ｒｅｅｖａｌｕａｔｉｎｇ  Ａｍｄａｈｌ´ｓ  Ｌａｗ”と題するＪ．Ｇｕｓｔａｆｓｏｎによる論文、１９９６年に発行された並列処理シンポジウムの第２２７〜２３４頁に掲載された「高並列計算機の性能評価のための挙動予測モデルの構成」と題する古市らによる論文にも同様にシングルタスク環境の仮定をおいた向上度の予測手法が示されている。
【０００４】
又、マルチタスク環境を想定した場合の予測手法が、１９９６年に発行されたＣｏｍｍｕｎ．ＡＣＭ  ３９  （１２）  のＡｒｔｉｃｌｅ  ２３１  に掲載された”Ｉｎｃｌｕｄｉｎｇ  Ｑｕｅｕｅｉｎｇ  Ｅｆｆｅｃｔｓ  ｉｎ  Ａｍｄａｈｌ´ｓ  Ｌａｗ”と題するＲ．Ｎｅｌｓｏｎによる論文に掲載されている。この論文ではマルチタスク環境によるタスク（又はスレッド）間のプロセッサ競合を考慮したパラメータを予測式に取り入れている。
【０００５】
ところで、マルチプロセッサを搭載したＳＭＰ（ｓｙｍｍｅｔｒｉｃａｌ  ｍｕｌｔｉｐｒｏｃｅｓｓｏｒ；  対称型マルチプロセッサ）マシンが比較的安価になるに伴い、コンピュータシステムのプラットホーム（ｐｌａｔｆｏｒｍ）に採用されるなど、従来は大規模な科学計算などに用いられていた並列計算機が身近なものになりつつある。
【０００６】
システム開発において、並列計算機をプラットホームとして採用する場合に問題となることの１つが、並列計算機において並列度をどの程度に設定するかである。並列度は計算機におけるプロセッサの数と一致することが多く、一般には並列度をあげると性能は向上するが、このことはプロセッサ数の増加に繋がるため、プラットフォームに対するコストは増加してしまう。
【０００７】
コストパフォーマンスの高いシステム開発を行うためには、適度な並列度の設定を行うこと、さらには（要求された処理性能を満たす範囲内で）できるだけ並列度を低くするようなシステム設計が可能であることが望ましい。そのためには、システム構成を与えた場合に並列度に対する処理性能の指標（具体的には速度向上率、効率、スループット（ｔｈｒｏｕｇｈｐｕｔ；単位時間当たりの処理能力）やレスポンスタイム、資源使用率などを指す。）を予測する必要がある。このような指標を予測する場合、従来は主にシングルタスク環境での利用を想定して行われていた。シングルタスク環境下での速度向上率や効率（これらの指標の定義は上記古市らの論文の第２２８項参照のこと）の予測手法が上記のようにＧ．Ａｍｄａｈによる論文をはじめとした論文で示されている。また、マルチタスク環境を想定し、向上度を予測する手法も上記Ｒ．Ｎｅｌｓｏｎの論文で示されている。
【０００８】
図８は並列計算機をプラットホームとするマルチタスク環境でのコンピュータシステムの一例を示す構成図である。図８を参照して、並列計算機１０１は複数のプロセッサ、この例では３つのプロセッサ１０２〜１０４を有している。一方、実行される複数のタスクとして、この例では４つのタスク１０５〜１０８が存在する。このコンピュータシステムでは、複数のプロセッサ１０２〜１０４を搭載したコンピュータ（並列計算機）１０１上で、同時に複数のタスク１０５〜１０８の実行が行われるのである。
【０００９】
又、この種の技術の一例が特開平９−２３７２０３号公報、特開昭６２−１８２８６４号公報、特開昭５９−１７４９５７号公報及び特開平１０−０６９４６９号公報に開示されている。
【００１０】
【発明が解決しようとする課題】
第１の問題点は、マルチタスク環境又はマルチスレッド環境における並列計算機の並列度に対する性能の向上度や性能指標を正しく予測できないということである。その理由は、シングルタスク環境を想定して行った予測では、複数のタスクによるプロセッサの競合などのリソース競合を考慮していないので、誤った予測しか行えないためである。また、Ｒ．Ｎｅｌｓｏｎの論文において示されている手法では、予測式の根拠となる理論が示されていないためにその精度に疑問があるからである。
【００１１】
第２の問題点は、コストにふさわしい並列計算機のスペック、より具体的には並列度やプロセッサの処理速度といったものの決定を勘や経験にたよらざるを得ないということである。その理由は、第１の問題点に示されるように性能指標を適切に予測することができないためである。
【００１２】
第３の問題点は、並列計算機上で実行されるプログラムの構造にボトルネック（ｂｏｔｔｌｅ  ｎｅｃｋ；阻害要因）があってもその箇所の特定ができないことである。その理由は、プログラムではセマフォ（ｓｅｍａｐｈｏｒｅ）やクリティカルセクション（ｃｒｉｔｉｃａｌ  ｓｅｃｔｉｏｎ）などを用いた制御が行われており、このことがボトルネックとなることが多々ある。しかしながら、従来の方法では、マルチタスク環境でのこれらプログラムの構造を適切に考慮していないということが理由である。なお、「セマフォ」とは複数のタスクが同時に動く場合にタスク間の同期を取るときに使う信号のことをいい、「クリティカルセクション」とは複数のタスクが同時実行される環境において、あるタスクがクリティカルな（重要な）資源を使用している間は他のタスクにその資源が解放されるまでその資源の使用を待たせること、即ちその待たせる期間のことをいう。
【００１３】
第４の問題点は要求性能を満足するために、同時に実行するプログラムの構成やタスク数、スレッド数といったシステム負荷の設定を勘や経験のみで行わなければならないということである。その理由は、従来の方法にはマルチタスク環境又はマルチスレッド環境におけるシステムの性能指標を適切に予測するためのモデルおよびその解析手法が示されていないためである。
【００１４】
第５の問題点は、システムにおけるスループット、レスポンスタイム（ｒｅｓｐｏｎｓｅ  ｔｉｍｅ；応答時間）、リソース（ｒｅｓｏｕｒｃｅ；資源）の使用率といったより細かい性能指標の予測が不可能であることである。その理由は、従来の方法では解析を容易にするために、算出する指標を速度向上率や効率などの特定されたものに限定してしまっているからである。
【００１５】
そこで本発明の目的は、上記課題を解決することが可能なマルチタスクシステムの性能予測システム及び予測方法並びにその方法プログラムを記録した記録媒体を提供することにある。
【００１６】
【課題を解決するための手段】
前記課題を解決するために本発明によるマルチタスクシステムの性能予測システムは、並列計算機をプラットホームとするマルチタスクシステムの性能予測システムであって、マルチタスク環境でのハードウェアのリソース競合と前記ハードウェアを利用するソフトウェアレベルでのリソース競合とを、リソース競合を階層的にモデル化した待ち行列網モデルにマッピングするモデル化手段と、前記待ち行列網モデルを近似解析し、客をサービスするサーバ数、タスクのトークンの個数、タスク実行中の客数に基づき処理速度を算出する計算式と、全タスクの種類、各タスクがハードウエア資産をどの程度利用するかという情報、ハードウエア資産の数、クリティカルセクションを表すトークンの数、各々のトークンの個数、各タスクを実行する要求（客）の数を用いてスループットを算出する積形式の式とを用いて、前記マルチタスクシステムの性能指標を予測する性能指標予測手段とを含むことを特徴とする。
【００１７】
又、本発明による性能予測方法は、並列計算機をプラットホームとするマルチタスクシステムの性能予測方法であって、モデル生成部において、マルチタスク環境でのハードウェアのリソース競合と前記ハードウェアを利用するソフトウェアレベルでのリソース競合とを、リソース競合を階層的にモデル化した待ち行列網モデルにマッピングする第１ステップと、予測実行部において、前記待ち行列網モデルを近似解析し、客をサービスするサーバ数、タスクのトークンの個数、タスク実行中の客数に基づき処理速度を算出する計算式と、全タスクの種類、各タスクがハードウエア資産をどの程度利用するかという情報、ハードウエア資産の数、クリティカルセクションを表すトークンの数、各々のトークンの個数、各タスクを実行する要求（客）の数を用いてスループットを算出する積形式の式とを用いて、前記マルチタスクシステムの性能指標を予測する第２ステップとを含むことを特徴とする。
【００１８】
又、本発明による記録媒体は、並列計算機をプラットホームとするマルチタスクシステムの性能予測方法プログラムを記録した記録媒体であって、コンピュータに、モデル生成部において、マルチタスク環境でのハードウェアのリソース競合と前記ハードウェアを利用するソフトウェアレベルでのリソース競合とを、リソース競合を階層的にモデル化した待ち行列網モデルにマッピングする第１ステップと、予測実行部において、前記待ち行列網モデルを近似解析し、客をサービスするサーバ数、タスクのトークンの個数、タスク実行中の客数に基づき処理速度を算出する計算式と、全タスクの種類、各タスクがハードウエア資産をどの程度利用するかという情報、ハードウエア資産の数、クリティカルセクションを表すトークンの数、各々のトークンの個数、各タスクを実行する要求（客）の数を用いてスループットを算出する積形式の式とを用いて、前記マルチタスクシステムの性能指標を予測する第２ステップとを機能させるプログラムを記録したことを特徴とする。
【００１９】
本発明によれば、まず第１にマルチタスク環境又はマルチスレッド環境における並列計算機の並列度に対する性能の向上度や性能指標を正しく予測することができる。次に第２にかけられるコストにふさわしい並列度、より具体的にはプロセッサの数の決定を適切に判断することができる。第３にプログラム構造におけるボトルネックを特定することができる。第４に要求性能を満足するために、同時に実行するプログラムの構成やタスク数といったシステムに対する負荷をどのように設定すべきかを適切に判断することができる。第５にシステムにおけるスループット、レスポンスタイム、リソースの使用率といった細かい性能指標の予測が可能となる。
【００２０】
【発明の実施の形態】
まず、本発明の概要について説明する。本発明に係るマルチタスクシステムの性能予測システムは、プラットホームとなる並列計算機の並列度、プロセッサの処理速度などのスペックを表すパラメータ、同時に処理されるプログラムの種類やそれらの数、各プログラムにおいてスレッド（ｔｈｒｅａｄ）化がどのようになされているかを示すパラメータ、各プログラムにおいてセマフォ、クリティカルセクションがどのように採用されているかを示すパラメータなどを入力パラメータとし、これらのパラメータを基に、マルチプロセッサを（プロセッサの数の）複数個のサーバ（ｓｅｒｖｅｒ）として捉え、それらのサーバがプロセッサシェアリング（ｐｒｏｃｅｓｓｏｒ  ｓｈａｒｉｎｇ）でタスク、又はスレッドを処理するとして、セマフォやクリティカルセクションをトークン（ｔｏｋｅｎ）を用いて、システムに対する負荷を客としてモデル化するモデル生成部を持つことを特徴としている。
【００２１】
このモデル生成部により生成されるモデルには、待ち行列理論の適用が可能であるため、陽に処理性能の向上度や性能指標を予測する式が求められ、この式から予測値が容易に求められるという効果が得られる。さらに、解析手段として待ち行列理論を用いることにより、必要な入力パラメータを大幅に削減できることを特徴としている。入力パラメータとして、システムの動作などの細かいデータが不必要となり、予測のための準備が容易になるという効果が得られる。
【００２２】
又、解析手段としては、待ち行列理論の代わりにシミュレーションを用いてもよく、この場合は数値的に処理性能の向上度や性能指標を予測することができる。又、モデル化においては、プラットフォームのリソースをさらに細かくモデル化してもよい。この場合は待ち行列理論を用いても陽な式としては処理性能の向上度や性能指標を予測することは一般にはできないが、近似計算法やシミュレーションを用いることにより精度よく数値的に予測することが可能である。
【００２３】
以下、本発明の実施の形態について添付図面を参照しながら説明する。図１は本発明に係るマルチタスクシステムの性能予測システムの第１の実施の形態の構成図である。図１を参照して、性能予測システムは、プラットホームとなる並列計算機の並列度やプロセッサの処理速度などのスペック、及び同時に処理されるプログラムの種類やそれらの数、各プログラムにおいてスレッド化がどのようになされているかやセマフォ、クリティカルセクションがどのように採用されているかを示すデータが入力されるシステムデータ入力部１１と、システムデータ入力部１１からの情報を入力としモデルを生成するモデル生成部１２と、生成されたモデルから向上度やより細かい性能指標であるスループット、レスポンス、リソース使用率などの性能指標予測値を算出する予測実行部１３と、予測実行部１３から出力された値を可視的に表現する予測結果出力部１４とを含んで構成されている。
【００２４】
図２は性能予測システムの動作の手順を示すフローチャートである。次に、この図２を参照しながら性能予測システムの動作について説明する。まず、プラットフォームとなる並列計算機のスペックがシステムデータ入力部１１へ入力される（Ｓ１）。ここでのスペックとは並列計算機の並列度などをいう。次に、システムデータ入力部１１へプログラムに関するデータが入力される（Ｓ２）。そのプログラムに関するデータとは、（１）同時に実行されるプログラムの種類およびそれらの数を示すデータ、（２）各プログラムがどのようなタスク、スレッドで構成されているかを示すデータ、（３）各プログラムがセマフォやクリティカルセクションをどのように用いているかを示すデータ、（４）各タスク、スレッドのプラットフォーム上のリソースの平均使用頻度や平均使用時間を示すデータである。これらの入力されたデータを基にモデル生成部１２によりモデルが生成される（Ｓ３）。
【００２５】
図１におけるモデル生成部１２では、（１）プログラムのセマフォやクリティカルセクションなどの構造がトークンを用いてモデル化され、（２）実行状態にあるプログラムおよびスレッドが（待ち行列モデルでいうところの）客としてモデル化され、（３）並列計算機が、プロセッサシェアリングによりサービスを行う、並列度と等しい数の（待ち行列モデルでいうところの）サーバとしてモデル化され、これにより待ち行列網モデルが生成される。
【００２６】
この待ち行列網モデルが予測実行部１３により解析される（Ｓ４）。このモデルの状態の変化は各タスク又はスレッドの処理速度が分かれば追うことができるということが待ち行列理論において知られている。この処理速度は、上記のようなシンプルなモデル化をしたことにより、算出することが可能である。予測実行部１３では、これらの処理速度を算出した後、これらを用いてモデルの状態の定常分布、モデルのスループット、レスポンスタイムなどの性能予測値を待ち行列理論を用いて算出する。そして、この算出値を予測結果出力部１４が受け取り、数値のみならず指定されればグラフなども用いてユーザに理解しやすい形式にして掲示する（Ｓ５）。
【００２７】
例えば次のようなシステムを例として取り上げてみる。図３はプログラムの実行タイミングの一例を示すタイミングチャートである。同時に実行されるプログラムは１種類でその数は常時Ｋ（Ｋは２以上の整数）個であるとする。又、図３に示されるように各プログラムは、タスク１とタスク２とから構成され、この２つのタスク１，２の実行を繰り返すものとする。又、タスクｉ（ｉは１又は２とする）はｈ（ｉ）個のセマフォで制御されている。つまり、同時にタスクｉを実行できるプログラムはシステム全体でｈ（ｉ）個である。又、並列計算機の並列度に関わらず、タスク１の処理は平均1/μ（１）秒／回だけプロセッサを使用し、タスク２の処理は1/μ（２）秒／回だけプロセッサを使用するとする。又、並列度はｎとする。
【００２８】
このようなシステムは、図４の待ち行列網モデルの模式説明図に示されるように、（１）Ｋ人の客２１が網内を循環し、（２）客２１は種類ｉ（ｉは１又は２）のトークンを確保したのちにタスクｉの処理をサービスステーション２２で受け、処理を終了するとトークンを解放し、（３）トークンの割り当てはＦＩＦＯ（先着先出し）の規律で行われ、（４）客２１はタスク１とタスク２を交互に行い、（５）種類ｉのトークンはｈ（ｉ）個あり、（６）サービスステーション２２はプロセッサシェアリングで客２１をサービスするｎ（ｎは正の整数）個のサーバ２３で構成される、という待ち行列網モデルとしてモデル生成部１２においてモデル化される。
【００２９】
さらに具体的に説明すると、「Ｋ人の客２１」とはプログラム１〜Ｋの各々をいい、客２１は種類１のトークンを獲得した後に行う処理１と、種類２のトークンを獲得した後に行う処理２の２種類の処理を交互に繰り返す。ただし、各種類のトークンの数には制限があるため、トークンを獲得できるまで客２１はバッファ２４に並んで空きができるまで待つ。そして、トークンを獲得した客２１はサービスステーション２２に進み、ｎ個のサーバ２３からプロセッサシェアリングの規律でサービスを受ける。そして、サービスステーション２２にて処理１を終了した客２１は種類２のトークンを獲得するために移動し、処理２を終了した客２１は種類１のトークンを獲得するために移動する。
【００３０】
この待ち行列網モデルを予測実行部１３において解析する。タスクｉを実行中の客数をＸ（ｉ）で表現するならば、モデルの状態は
Ｘ＝（Ｘ（１），Ｘ（２））  …（１）
により表現することができる。この状態Ｘの変化の速度は（この状態Ｘに依存する）タスクｉの処理速度として求めることができる。Ｌ（ｉ）＝ｍｉｎ（ｈ（ｉ），Ｘ（ｉ））と表すと、この例の場合、状態Ｘの時の各タスクの処理速度は、
処理１の処理速度τ（１｜  Ｘ）＝ｎ＊μ（１）Ｌ（１）／ｍａｘ（ｎ，Ｌ（１）＋Ｌ（２））  …（２）
処理２の処理速度τ（２｜  Ｘ）＝ｎ＊μ（２）Ｌ（２）／ｍａｘ（ｎ，Ｌ（１）＋Ｌ（２））  …（３）
と求めることができる。モデルの状態変化の速度を算出できれば状態Ｘとなる定常分布、モデルのスループット、レスポンスタイムを算出することは待ち行列理論を用いれば容易なことである。例えばこの例におけるスループットλは、
【００３１】
【数１】
0003663968.tif 000002
【００３２】
のように陽に算出することができる。速度向上率、効率、レスポンス、リソースの使用率などの他の性能指標も待ち行列理論を適用することで陽に予測することができる。予測実行部１３はモデルの性能指標の計算結果を予測値として出力する。そして、この出力を予測結果出力部１４が受け取り、数値をグラフなども用いてユーザに理解しやすい形式にして掲示する。
【００３３】
次に第１の実施の形態の効果について説明する。本発明は、マルチタスク環境又はマルチスレッド環境における実際のシステムを適切にかつシンプルに理論解析が可能な待ち行列網モデルとしてモデル化しているために、マルチタスク環境又はマルチスレッド環境における並列計算機システムの性能指標を容易にかつ精度よく予測できる。又、適切なモデル化により、従来の手法に比べ様々な指標を予測することができる。
【００３４】
なお、上記実施の形態では、先に触れたように、予測実行部１３における解析手段として、待ち行列理論のかわりにシミュレーションを用いてもよい。又、モデル化においては、プラットフォームのリソースをさらに細かく待ち行列でいうサーバとしてモデル化してもよい。この場合は待ち行列理論を用いても陽な式としては処理性能の向上度や性能予測指標を求めることはできないが、近似計算法やシミュレーションを用いることにより同様に精度よく数値的に算出することが可能である。
【００３５】
プラットホームのリソースをさらに細かくモデル化した例を挙げることにする。図５はプラットホームのリソースをさらに細かくした待ち行列網モデルの模式説明図である。なお、図４の模式説明図と同様の構成部分には同一番号を付し、その説明を省略する。予測の対象となるシステムは上記と同様であるが、プラットホームとなる並列計算機のリソースとしてハードディスク３２，３４が夫々存在し、これらのリソースのタスク、スレッドによる競合も考慮に入れて性能指標の予測を行う。
【００３６】
タスク１はハードディスク３２を利用し、タスク２はハードディスク３４を利用するとする。この場合は、図５に示されるように、図４で示された待ち行列網モデルにハードディスク３２に相当するサービスステーション３１とハードディスク３４に相当するサービスステーション３３を加えた形で待ち行列網モデルとしてモデル化すればよい。ここでは、サービスステーション３１とサービスステーション３３はともに１つのサーバーと１つのバッファで構成されており、サービス規律をＦＩＦＯとしているが、リソースのモデル化はその特性を反映した形で適切に行う必要がある。又、予測のための解析手法は上記と同様である。
【００３７】
次に、第２の実施の形態について説明する。その基本的構成は第１の実施の形態と同様であるが、システムにおいて適切なプラットホームのスペックを特定するために、プラットホームのスペック（具体的には並列度など）を予測を行いたい範囲のパラメータとしてシステムデータ入力部１１に与える。モデル生成部１２は、プラットホームのスペックをパラメータにした形でモデル化を行う。予測実行部１３は、与えられた範囲でパラメータを変化させ、第１の実施の形態と同じ方法で予測値を算出する。予測結果出力部１４はその計算結果を受取り、パラメータに対する予測値をユーザに理解しやすい形式にし表示を行う。ユーザはこの結果から、どのパラメータが適切であるかを判断する。つまり、適切なプラットホームとなる並列計算機のスペックを判断する。
【００３８】
例えば、先の第１の実施の形態で用いたシステムに対して並列度ｎを１から１６の範囲とした場合のスループットを予測し、適切な並列度を算出することを考える。ユーザは第１の形態における実施例と同様の手順でモデルを生成するが、並列度は１からｎのパラメータであると指定した入力をシステムデータ入力部１１に対して行う。モデル生成部１２は、並列度を１からｎまでのパラメータとしてモデルを生成し、それらのモデルを予測実行部１３においてパラメータの値を変えながら性能指標の予測値を算出する。そしてユーザに理解しやすい形にし、表示を行うが、この場合、並列度ｎに対するスループットを数値だけではなく、図６に示すようなグラフにして表示するとよい。図６を参照して、要求性能が秒当り４件だとするならば、並列度は５以上でなければならないことがわかる。
【００３９】
次に第２の実施の形態の効果について説明する。本発明はプラットホームのスペックをパラメータとし、そのパラメータに対する予測値を見ることができる。このため、システムが要求されている性能仕様を満たすために必要なプラットホームのスペックを決定するために必要な客観的なデータ（性能指標）を予測値として得ることができる。
【００４０】
次に、第３の実施の形態について説明する。その基本的構成は第１の実施の形態と同様であるが、プログラムにおけるセマフォやクリティカルセクションの数や構成、各タスク，スレッドのプラットホーム上のリソースの平均使用時間、平均利用頻度などといったプログラム構造に関するデータを予測を行いたい範囲のパラメータとしてシステムデータ入力部１１に与える。
【００４１】
モデル生成部１２は、プログラムデータをパラメータにした形でモデル化を行う。予測実行部１３は、与えられた範囲でパラメータを変化させ、第１の実施の形態と同じ方法で予測値を算出する。予測結果出力部１４はその計算結果を受け取り、パラメータに対する予測値をユーザに理解しやすい形式にし表示を行う。ユーザはこの結果から、どのパラメータが適切であるかを判断する。つまり、適切なプログラム構造を判断する。
【００４２】
例えば、先の第１の実施の形態で用いたシステムに対してタスク１のセマフォの数を１（ｈ（１）＝１）とし、タスク２のセマフォの数ｈ（２）をパラメータとし、１〜ｈまで変化させた場合のスループットを予測し、適切セマフォの数を算出することを考える。ユーザは第１の形態における実施例と同様の手順でモデルを生成するが、セマフォの数ｈ（２）は１からｈのパラメータであると指定した入力をシステムデータ入力部１１に対して行う。モデル生成部１２は、セマフォの数ｈ（２）を１からｈまでのパラメータとしてモデルを生成し、それらのモデルを予測実行部１３がパラメータの値を変えながら性能予測値を算出する。そして予測結果出力部１４においてユーザに理解しやすい形にし表示を行う。この場合もｈ（２）に対するスループットを数値だけではなく、グラフデータなども表示するとよい。
【００４３】
次に第３の実施の形態の効果を示す。本発明はプログラムにおけるセマフォの数などプログラム構造に関するデータをパラメータとし、そのパラメータに対する予測値を見ることができる。このため、システムが要求されている性能仕様を満たすためにはプログラム構造をどのようにすればよいか判断するために必要な客観的なデータを得ることができる。
【００４４】
次に、第４の実施の形態について説明する。その基本的構成は第１の実施の形態と同様であるが、同時に実行されるプログラム又はタスクの数、スレッドの数などのシステムの負荷に関するデータを予測を行いたい範囲のパラメータとしてシステムデータ入力部１１に与える。モデル生成部１２は、このようなシステムの負荷をパラメータにした形でモデル化を行う。予測実行部１３は、与えられた範囲でパラメータを変化させ、第１の実施の形態と同じ方法で予測値を算出する。予測結果出力部１４はその計算結果を受け取り、パラメータに対する予測値をユーザに理解しやすい形式にし表示を行う。ユーザはこの結果から、どのパラメータが適切であるかを判断する。つまり、適切な負荷を判断する。
【００４５】
例えば、先の第１の実施の形態で用いたシステムに対してプログラムの数を１〜Ｋまで変化させた場合のスループットを予測し、適切な同時に実行するプログラムの数を算出することを考える。ユーザは第１の形態における実施例と同様の手順でモデルを生成するが、プログラムの数を１からＫのパラメータであると指定した入力をシステムデータ入力部１１に対して行う。モデル生成部１２は、プログラムの数ｋを１からＫまでのパラメータとしてモデルを生成し、それらのモデルを予測実行部１３がパラメータの値を変えながら性能予測値を算出する。そして予測結果出力部１４はその計算結果を受け取り、ユーザに理解しやすい形にし表示を行う。
【００４６】
次に、第４の実施の形態の効果を示す。本発明はプログラムにおけるプログラムの数などシステムにおける負荷をパラメータとし、そのパラメータに対する予測値を見ることができる。このため、システムが要求されている性能仕様を満たすためにはシステムにおける負荷をどのようにすればよいか判断するために必要な客観的なデータを得ることができる。
【００４７】
次に、第５の実施の形態について説明する。第５の実施の形態は性能予測方法プログラムを記録した記録媒体に関するものである。図７は記録媒体及び記録媒体駆動装置の構成図である。図７を参照して、記録媒体駆動装置はＣＰＵ（中央処理装置）４１と、入力部４２と、記憶部４３と、性能予測システム４４とを含んで構成され、この駆動装置で記録媒体４５を駆動する。
【００４８】
性能予測システム４４は図１に示されるシステムデータ入力部１１、モデル生成部１２、予測実行部１３及び予測結果出力部１４から構成されている。又、記録媒体４５には図２のフローチャートで示される性能予測方法プログラムが予め記憶されている。
【００４９】
次に、この駆動装置の動作について説明する。まず、入力部４２を介してＣＰＵ４１に性能予測方法プログラムのロード（ＬＯＡＤ）命令が入力されると、ＣＰＵ４１は記録媒体４５から性能予測方法プログラムを読込み、その読込んだプログラムを記憶部４３に書込む。次に、入力部４２を介してＣＰＵ４１に性能予測方法プログラムのラン（ＲＵＮ）命令が入力されると、ＣＰＵ４１は記憶部４３から性能予測方法プログラムを読込み、その読込んだプログラムにより性能予測システム４４を制御する。その制御の内容については前述したので説明を省略する。
【００５０】
【発明の効果】
本発明による第１の発明によれば、並列計算機をプラットホームとするマルチタスクシステムの性能予測システムであって、そのシステムはマルチタスク環境でのリソースの競合を待ち行列網モデルを用いてモデル化するモデル化手段と、そのモデル化されたリソースの競合を待ち行列理論を用いて解析し前記マルチタスクシステムの性能指標を予測する性能指標予測手段とを含むため、まず第１にマルチタスク環境またはマルチスレッド環境における並列計算機の並列度に対する性能の向上度や性能指標を正しく予測することができる。次に第２にかけられるコストにふさわしい並列度、より具体的にはプロセッサの数の決定を適切に判断することができる。第３にプログラム構造におけるボトルネックを特定することができる。第４に要求性能を満足するために、同時に実行するプログラムの構成やタスク数といったシステムに対する負荷をどのように設定すべきかを適切に判断することができる。第５にシステムにおけるスループット、レスポンスタイム、リソースの使用率といった細かい性能指標の予測が可能となる。
【００５１】
又、本発明による第２の発明によれば、並列計算機をプラットホームとするマルチタスクシステムの性能予測方法であって、その方法はマルチタスク環境でのリソースの競合を待ち行列網モデルを用いてモデル化する第１ステップと、そのモデル化されたリソースの競合を待ち行列理論を用いて解析し前記マルチタスクシステムの性能指標を予測する第２ステップとを含むため第１の発明と同様の効果を奏する。
【００５２】
又、本発明による第３の発明によれば、並列計算機をプラットホームとするマルチタスクシステムの性能予測方法プログラムを記録した記録媒体であって、その記録媒体にはマルチタスク環境でのリソースの競合を待ち行列網モデルを用いてモデル化する第１ステップと、そのモデル化されたリソースの競合を待ち行列理論を用いて解析し前記マルチタスクシステムの性能指標を予測する第２ステップとを含むプログラムが記録されているため第１の発明と同様の効果を奏する。
【図面の簡単な説明】
【図１】本発明に係るマルチタスクシステムの性能予測システムの第１の実施の形態の構成図である。
【図２】性能予測システムの動作の手順を示すフローチャートである。
【図３】プログラムの実行タイミングの一例を示すタイミングチャートである。
【図４】待ち行列網モデルの模式説明図である。
【図５】プラットホームのリソースをさらに細かくした待ち行列網モデルの模式説明図である。
【図６】スループット対並列度特性図である。
【図７】記録媒体及び記録媒体駆動装置の構成図である。
【図８】並列計算機をプラットホームとするマルチタスク環境でのコンピュータシステムの一例を示す構成図である。
【符号の説明】
１１  システムデータ入力部
１２  モデル生成部
１３  予測実行部
１４  予測結果出力部
４５  記録媒体
【図１】
0003663968.tif 000003
【図２】
0003663968.tif 000004
【図３】
0003663968.tif 000005
【図４】
0003663968.tif 000006
【図５】
0003663968.tif 000007
【図６】
0003663968.tif 000008
【図７】
0003663968.tif 000009
【図８】
0003663968.tif 000010