(57)【要約】【課題】  情報処理システムを最大限に効率的に利用することができるようにする。【解決手段】  データ取得部１２１が、ジョブデータを取得して、シミュレーション実行部１２３に出力する。シミュレーションデータ入力部１２５は、ユーザによる、ホストの仮想的な追加または削減に関する情報、およびシミュレーションする期間の指定などの条件の設定入力を受け付け、実行条件生成部１２４が仮想的な実行条件を生成する。シミュレーション実行部１２３は、データ取得部１２１により取得されたジョブデータと、仮想的な実行条件とに基づいて、ジョブを仮想的に実行し、仮想的な実行結果を指標演算部１２２に出力する。指標演算部１２２は、各ジョブのＴＡＴ指標を演算し、結果出力部１２６が、演算されたＴＡＴ指標の値に基づいて、所定のGUIのデータを生成してユーザに提示する。本発明は、グリッドコンピューティングに適用することができる。【選択図】図３
2006040018.tif 000002
【特許請求の範囲】
【請求項１】
ジョブを投入する複数の端末と、
前記複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサとを有する情報処理システムに接続される情報処理装置であって、
前記情報処理システムのジョブの実行に関する、仮想的な実行条件を生成する実行条件生成手段と、
前記情報処理システムにおいて、実行されたジョブに関するジョブデータを指定する指定手段と、
前記実行条件生成手段により生成された仮想的な実行条件に基づいて、前記指定手段により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションを行うシミュレーション実行手段と、
前記シミュレーション実行手段による前記ジョブの実行時間に関するシミュレーション結果を出力する結果出力手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記実行条件は、前記プロセッサの数、およびジョブの処理能力に関する情報であり、
前記実行条件生成手段は、予め記憶されている、前記複数のプロセッサおよび前記複数のプロセッサに関する情報に対して、所定のプロセッサを仮想的に追加または削除して、前記仮想的な実行条件を生成する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ジョブデータには、少なくとも、
前記ジョブを識別するIDと、
前記ジョブが前記キューに投入された時刻である投入時刻と、
前記ジョブの前記プロセッサによる実行が開始された時刻である実行開始時刻と、
前記ジョブの前記プロセッサによる実行が終了された時刻である終了時刻と
が含まれることを特徴とする請求項１に記載の情報処理装置
【請求項４】
前記シミュレーション実行手段は、前記ジョブデータに基づいて、前記仮想的な実行条件において、前記ジョブが実行された場合の、仮想的な実行開始時刻、および仮想的な終了時刻を算出して記録し、仮想的なジョブデータを生成する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記ジョブデータまたは前記仮想的なジョブデータに基づいて、前記ジョブが前記情報処理システムに投入されてから終了するまでの時間であるターンアラウンドタイムを演算する演算手段をさらに備える
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記演算手段は、
予め記憶されている前記ターンアラウンドタイムの最速値と、前記ジョブデータまたは前記仮想的なジョブデータに基づいて、演算されたターンアラウンドタイムの実測値とに基づいて、前記情報処理システムのリソースがどれだけ効率的に利用されているかを表す評価値であるターンアラウンドタイム指標をさらに演算する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記結果出力手段は、前記ジョブデータに基づいて演算されたターンアラウンドタイム指標と、前記仮想的なジョブデータに基づいて演算されたターンアラウンドタイム指標とをそれぞれ表示する
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記指定手段は、前記情報処理システムにおいて実行されたジョブに関するジョブデータの抽出期間を指定し、前記シミュレーション実行手段は、前記指定手段により指定された抽出期間のジョブデータに対応するジョブの、実行時間に関するシミュレーションを行う
ことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
ジョブを投入する複数の端末と、
前記複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサとを有する情報処理システムに接続される情報処理装置の情報処理方法であって、
前記情報処理システムのジョブの実行に関する、仮想的な実行条件を生成する実行条件生成ステップと、
前記情報処理システムにおいて、実行されたジョブに関するジョブデータを指定する指定ステップと、
前記実行条件生成ステップの処理により生成された仮想的な実行条件に基づいて、前記指定ステップの処理により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションを行うシミュレーション実行ステップと、
前記シミュレーション実行ステップの処理による前記ジョブの実行時間に関するシミュレーション結果を出力する結果出力ステップと
を含むことを特徴とする情報処理方法。
【請求項１０】
ジョブを投入する複数の端末と、
前記複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサとを有する情報処理システムに接続される情報処理装置のプログラムであって、
前記情報処理システムのジョブの実行に関する、仮想的な実行条件の生成を制御する実行条件生成制御ステップと、
前記情報処理システムにおいて、実行されたジョブに関するジョブデータの指定を制御する指定制御ステップと、
前記実行条件生成制御ステップの処理により生成された仮想的な実行条件に基づいて、前記指定制御ステップの処理により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションの実行を制御するシミュレーション実行制御ステップと、
前記シミュレーション実行制御ステップの処理による前記ジョブの実行時間に関するシミュレーション結果の出力を制御する結果出力制御ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項１１】
ジョブを投入する複数の端末と、
前記複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサとを有する情報処理システムに接続される情報処理装置のプログラムが記録されている記録媒体であって、
前記情報処理システムのジョブの実行に関する、仮想的な実行条件の生成を制御する実行条件生成制御ステップと、
前記情報処理システムにおいて、実行されたジョブに関するジョブデータの指定を制御する指定制御ステップと、
前記実行条件生成制御ステップの処理により生成された仮想的な実行条件に基づいて、前記指定制御ステップの処理により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションの実行を制御するシミュレーション実行制御ステップと、
前記シミュレーション実行制御ステップの処理による前記ジョブの実行時間に関するシミュレーション結果の出力を制御する結果出力制御ステップと
をコンピュータに実行させるプログラムが記録されることを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、プログラム並びに記録媒体に関し、特に、情報処理システムを最大限に効率的に利用することができるようにする情報処理装置および方法、プログラム並びに記録媒体に関する。
【背景技術】
【０００２】
近年、半導体設計のシミュレーション、自動車の衝突時影響解析など複雑で大量の演算を行う場合、処理能力が高い高性能コンピュータなどを用いて集中的に処理を行う方法に代わって、ネットワークを介して接続された複数のプロセッサを用いて分散処理を行うグリッドコンピューティングが注目されている。グリッドコンピューティングは、例えば、所定のプログラム等により、ネットワークを介して複数のコンピュータ（プロセッサ）を制御し、それらを連携して動作させることで高性能コンピュータを仮想的に構築する技術である。この技術を利用することにより、利用者は、そのように構成された高性能の仮想コンピュータ（システム）から必要なだけ処理能力や記憶容量を取り出して利用することができる。
【０００３】
このようなグリッドコンピューティングとして例えば、均一なモジュラー構造、共通のコンピューティング・モジュール、および均一なソフトウェアセルを用いることによって、高速処理用コンピュータ・アーキテクチャを実現する方法がある（例えば、特許文献１乃至特許文献５参照）。
【０００４】
また、企業などでグリッドコンピューティングを利用する場合、複数のCPUを組み合わせて、より効率的な情報処理システムを提供することができる。
【０００５】
例えば、エンドユーザにより実行されたジョブを蓄えるキューを設けて、処理能力に余裕のあるＣＰＵから順に、ジョブを実行させるように制御することにより、ジョブ全体の処理時間を短縮させたり、エンドユーザが属する部署毎にＣＰＵ（リソース）を予め割り当てることにより、特定の部署のエンドユーザがリソースを独占してしまうことがないように、情報処理システムのリソースを管理することができる。
【０００６】
あるいはまた、情報処理システムにおけるジョブの実行状況を分析して、ジョブを実行する上でボトルネックとなるCPUを特定し、そのCPUだけを、より高性能なものにリプレースすることにより、情報処理システム全体の処理速度を飛躍的に向上させたり、ジョブを実行する上で、処理負荷に余裕のあるCPUを削減することにより情報処理システムのコストダウンを図ることも可能である。
【特許文献１】特開２００２−３４２１６５号公報
【０００７】
【特許文献２】特開２００２−３５１８５０号公報
【０００８】
【特許文献３】特開２００２−３５８２８９号公報
【０００９】
【特許文献４】特開２００２−３６６５３３号公報
【００１０】
【特許文献５】特開２００２−３６６５３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、グリッドコンピューティングにおいて、利用されるCPUを追加または削減する場合、CPUの追加または削減によりどれだけ情報処理システム全体の処理性能（例えば、処理に要する時間など）が向上または低下するかを正確に予測することは非常に困難である。
【００１２】
例えば、複数のキューが、予め割り当てられた、処理能力の異なる複数のCPUにそれぞれ接続されている場合、一部のCPUを追加または削減したとき、ジョブ全体の処理に要する時間がどのように変化するかは、数式などによってモデル化することは困難であり、このため、従来グリッドコンピューティングを利用した情報処理システムにおけるCPU（リソース）の追加または削減は、システム管理者の経験と勘に基づいて実施されるのが実状であった。その結果、システム管理者にとっては、リソースの追加または削減により、情報処理システムが所望の処理性能を有することができるか否かを予め把握することができず、例えば、処理性能の高いCPUを余分に確保したり、情報処理システムの投資／維持費用を多額に計上したりする必要があり、情報処理システム全体の処理性能とコストとを考慮して、情報処理システムを最大限に効率的に利用することができないという課題があった。
【００１３】
本発明はこのような状況に鑑みてなされたものであり、情報処理システムを最大限に効率的に利用することができるようにするものである。
【課題を解決するための手段】
【００１４】
本発明の情報処理装置は、ジョブを投入する複数の端末と、複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサとを有する情報処理システムに接続される情報処理装置であって、情報処理システムのジョブの実行に関する、仮想的な実行条件を生成する実行条件生成手段と、情報処理システムにおいて、実行されたジョブに関するジョブデータを指定する指定手段と、実行条件生成手段により生成された仮想的な実行条件に基づいて、指定手段により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションを行うシミュレーション実行手段と、シミュレーション実行手段によるジョブの実行時間に関するシミュレーション結果を出力する結果出力手段とを備えることを特徴とする。
【００１５】
前記実行条件は、プロセッサの数、およびジョブの処理能力に関する情報であり、実行条件生成手段は、予め記憶されている、複数のプロセッサおよび複数のプロセッサに関する情報に対して、所定のプロセッサを仮想的に追加または削除して、仮想的な実行条件を生成するようにすることができる。
【００１６】
前記ジョブデータには、少なくとも、ジョブを識別するIDと、ジョブがキューに投入された時刻である投入時刻と、ジョブのプロセッサによる実行が開始された時刻である実行開始時刻と、ジョブのプロセッサによる実行が終了された時刻である終了時刻とが含まれるようにすることができる。
【００１７】
前記シミュレーション実行手段は、ジョブデータに基づいて、仮想的な実行条件において、ジョブが実行された場合の、仮想的な実行開始時刻、および仮想的な終了時刻を算出して記録し、仮想的なジョブデータを生成するようにすることができる。
【００１８】
前記ジョブデータまたは前記仮想的なジョブデータに基づいて、ジョブが情報処理システムに投入されてから終了するまでの時間であるターンアラウンドタイムを演算する演算手段をさらに備えるようにすることができる。
【００１９】
前記演算手段は、予め記憶されているターンアラウンドタイムの最速値と、ジョブデータまたは仮想的なジョブデータに基づいて、演算されたターンアラウンドタイムの実測値とに基づいて、情報処理システムのリソースがどれだけ効率的に利用されているかを表す評価値であるターンアラウンドタイム指標をさらに演算するようにすることができる。
【００２０】
前記結果出力手段は、ジョブデータに基づいて演算されたターンアラウンドタイム指標と、仮想的なジョブデータに基づいて演算されたターンアラウンドタイム指標とをそれぞれ表示するようにすることができる。
【００２１】
前記指定手段は、情報処理システムにおいて実行されたジョブに関するジョブデータの抽出期間を指定し、シミュレーション実行手段は、指定手段により指定された抽出期間のジョブデータに対応するジョブの、実行時間に関するシミュレーションを行うようにすることができる。
【００２２】
本発明の情報処理方法は、ジョブを投入する複数の端末と、複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサとを有する情報処理システムに接続される情報処理装置の情報処理方法であって、情報処理システムのジョブの実行に関する、仮想的な実行条件を生成する実行条件生成ステップと、情報処理システムにおいて、実行されたジョブに関するジョブデータを指定する指定ステップと、実行条件生成ステップの処理により生成された仮想的な実行条件に基づいて、指定ステップの処理により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションを行うシミュレーション実行ステップと、シミュレーション実行ステップの処理による前記ジョブの実行時間に関するシミュレーション結果を出力する結果出力ステップとを含むことを特徴とする。
【００２３】
本発明のプログラムは、ジョブを投入する複数の端末と、複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサとを有する情報処理システムに接続される情報処理装置のプログラムであって、情報処理システムのジョブの実行に関する、仮想的な実行条件の生成を制御する実行条件生成制御ステップと、情報処理システムにおいて、実行されたジョブに関するジョブデータの指定を制御する指定制御ステップと、実行条件生成制御ステップの処理により生成された仮想的な実行条件に基づいて、指定制御ステップの処理により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションの実行を制御するシミュレーション実行制御ステップと、シミュレーション実行制御ステップの処理によるジョブの実行時間に関するシミュレーション結果の出力を制御する結果出力制御ステップとをコンピュータに実行させることを特徴とする。
【００２４】
本発明の記録媒体は、ジョブを投入する複数の端末と、複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサとを有する情報処理システムに接続される情報処理装置のプログラムが記録されている記録媒体であって、情報処理システムのジョブの実行に関する、仮想的な実行条件の生成を制御する実行条件生成制御ステップと、情報処理システムにおいて、実行されたジョブに関するジョブデータの指定を制御する指定制御ステップと、実行条件生成制御ステップの処理により生成された仮想的な実行条件に基づいて、指定制御ステップの処理により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションの実行を制御するシミュレーション実行制御ステップと、シミュレーション実行制御ステップの処理によるジョブの実行時間に関するシミュレーション結果の出力を制御する結果出力制御ステップとをコンピュータに実行させるプログラムが記録されることを特徴とする。
【００２５】
本発明の情報処理装置および方法、並びにプログラムにおいては、情報処理システムのジョブの実行に関する、仮想的な実行条件が生成され、情報処理システムにおいて、実行されたジョブに関するジョブデータが指定され、生成された仮想的な実行条件に基づいて、指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションが行われ、ジョブの実行時間に関するシミュレーション結果が出力される。
【発明の効果】
【００２６】
本発明によれば、情報処理システムを最大限に効率的に利用することができる。
【発明を実施するための最良の形態】
【００２７】
以下に本発明の実施の形態を説明するが、本明細書に記載した発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が明細書に記載されていることを確認するためのものである。従って、明細書には記載されているが、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００２８】
さらに、この記載は、明細書に記載されている発明が、全て請求されていることを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出願、または追加される発明の存在を否定するものではない。
【００２９】
請求項１に記載の情報処理装置は、ジョブを投入する複数の端末（例えば、図１の端末２１乃至２４）と、前記複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサ（例えば、図１のホスト４１−１乃至４１−６）とを有する情報処理システム（例えば、図１の情報処理システム１）に接続される情報処理装置（例えば、図１の解析装置５１）であって、前記情報処理システムのジョブの実行に関する、仮想的な実行条件を生成する実行条件生成手段（例えば、図９のステップS２の処理を実行する図３の実行条件生成部１２４）と、前記情報処理システムにおいて、実行されたジョブに関するジョブデータ（例えば、図６のジョブデータ）を指定する指定手段（例えば、図９のステップS３の処理を実行する図３のシミュレーションデータ入力部１２４）と、前記実行条件生成手段により生成された仮想的な実行条件に基づいて、前記指定手段により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションを行うシミュレーション実行手段（例えば、図９のステップS４の処理を実行する図３のシミュレーション実行部１２３）と、前記シミュレーション実行手段による前記ジョブの実行時間に関するシミュレーション結果を出力する結果出力手段（例えば、図３の結果出力部１２６）とを備える。
【００３０】
請求項２に記載の情報処理装置は、前記実行条件が、前記プロセッサの数、およびジョブの処理能力に関する情報（例えば、MXJ、CPUF）であり、前記実行条件生成手段は、予め記憶されている、前記複数のプロセッサおよび前記複数のプロセッサに関する情報（例えば、マスターテーブル）に対して、所定のプロセッサを仮想的に追加または削除して、前記仮想的な実行条件を生成するようにすることができる。
【００３１】
請求項３に記載の情報処理装置は、前記ジョブデータには、少なくとも、前記ジョブを識別するID（例えば、図６のJobID）と、前記ジョブが前記キューに投入された時刻である投入時刻（例えば、図６の投入時刻）と、前記ジョブの前記プロセッサによる実行が開始された時刻である実行開始時刻（例えば、図６の実行開始時刻）と、前記ジョブの前記プロセッサによる実行が終了された時刻である終了時刻（例えば、図６の終了時刻）とが含まれるようにすることができる。
【００３２】
請求項４に記載の情報処理装置は、前記シミュレーション実行手段が、前記ジョブデータに基づいて、前記仮想的な実行条件において、前記ジョブが実行された場合の、仮想的な実行開始時刻、および仮想的な終了時刻を算出して記録し（例えば、図１６のステップS５５、S５７の処理により記録し）、仮想的なジョブデータを生成する（例えば、図１６のステップS６０の処理で生成する）ようにすることができる。
【００３３】
請求項５に記載の情報処理装置は、前記ジョブデータまたは前記仮想的なジョブデータに基づいて、前記ジョブが前記情報処理システムに投入されてから終了するまでの時間であるターンアラウンドタイムを演算する演算手段（例えば、図３の指標演算部１２２）をさらに備えるようにすることができる。
【００３４】
請求項６に記載の情報処理装置は、前記演算手段が、予め記憶されている前記ターンアラウンドタイムの最速値と、前記ジョブデータまたは前記仮想的なジョブデータに基づいて、演算されたターンアラウンドタイムの実測値とに基づいて、前記情報処理システムのリソースがどれだけ効率的に利用されているかを表す評価値であるターンアラウンドタイム指標をさらに演算する（例えば、図１９のステップＳ８３の処理で演算する）ようにすることができる。
【００３５】
請求項７に記載の情報処理装置は、前記結果出力手段が、前記ジョブデータに基づいて演算されたターンアラウンドタイム指標と、前記仮想的なジョブデータに基づいて演算されたターンアラウンドタイム指標とをそれぞれ表示する（例えば、図２０に示されるように表示する）ようにすることができる。
【００３６】
請求項９に記載の情報処理方法は、ジョブを投入する複数の端末（例えば、図１の端末２１乃至２４）と、前記複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサ（例えば、図１のホスト４１−１乃至４１−６）とを有する情報処理システム（例えば、図１の情報処理システム１）に接続される情報処理装置（例えば、図１の解析装置５１）の情報処理方法であって、前記情報処理システムのジョブの実行に関する、仮想的な実行条件を生成する実行条件生成ステップ（例えば、図９のステップS２）と、前記情報処理システムにおいて、実行されたジョブに関するジョブデータ（例えば、図６のジョブデータ）を指定する指定ステップ（例えば、図９のステップS３）と、前記実行条件生成ステップの処理により生成された仮想的な実行条件に基づいて、前記指定ステップの処理により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションを行うシミュレーション実行ステップ（例えば、図９のステップS４）と、前記シミュレーション実行ステップの処理による前記ジョブの実行時間に関するシミュレーション結果を出力する結果出力ステップ（例えば、図１９のステップS８４）とを含む。
【００３７】
請求項１０に記載のプログラムは、ジョブを投入する複数の端末（例えば、図１の端末２１乃至２４）と、前記複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサ（例えば、図１のホスト４１−１乃至４１−６）とを有する情報処理システム（例えば、図１の情報処理システム１）に接続される情報処理装置（例えば、図１の解析装置５１）のプログラムであって、前記情報処理システムのジョブの実行に関する、仮想的な実行条件の生成を制御する実行条件生成制御ステップ（例えば、図９のステップS２）と、前記情報処理システムにおいて、実行されたジョブに関するジョブデータ（例えば、図６のジョブデータ）の指定を制御する指定制御ステップ（例えば、図９のステップS３）と、前記実行条件生成制御ステップの処理により生成された仮想的な実行条件に基づいて、前記指定制御ステップの処理により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションの実行を制御するシミュレーション実行制御ステップ（例えば、図９のステップS４）と、前記シミュレーション実行制御ステップの処理による前記ジョブの実行時間に関するシミュレーション結果の出力を制御する結果出力制御ステップ（例えば、図１９のステップS８４）とをコンピュータに実行させる。
【００３８】
請求項１１に記載の記録媒体は、ジョブを投入する複数の端末（例えば、図１の端末２１乃至２４）と、前記複数の端末から投入されたジョブを蓄積するキューから出力された複数のジョブを、並行して実行する複数のプロセッサ（例えば、図１のホスト４１−１乃至４１−６）とを有する情報処理システム（例えば、図１の情報処理システム１）に接続される情報処理装置（例えば、図１の解析装置５１）のプログラムが記録されている記録媒体であって、前記情報処理システムのジョブの実行に関する、仮想的な実行条件の生成を制御する実行条件生成制御ステップ（例えば、図９のステップS２）と、前記情報処理システムにおいて、実行されたジョブに関するジョブデータ（例えば、図６のジョブデータ）の指定を制御する指定制御ステップ（例えば、図９のステップS３）と、前記実行条件生成制御ステップの処理により生成された仮想的な実行条件に基づいて、前記指定制御ステップの処理により指定されたジョブデータに対応するジョブの、実行時間に関するシミュレーションの実行を制御するシミュレーション実行制御ステップ（例えば、図９のステップS４）と、前記シミュレーション実行制御ステップの処理による前記ジョブの実行時間に関するシミュレーション結果の出力を制御する結果出力制御ステップ（例えば、図１９のステップS８４）とをコンピュータに実行させるプログラムが記録される。
【００３９】
以下、図面を参照して、本発明の実施の形態について説明する。
【００４０】
図１は、本発明を適用した情報処理システム１の構成例を示すブロック図である。
【００４１】
情報処理システム１は、例えば、１の企業が有する情報処理システムであり、エンドユーザが端末を操作することにより指令した、例えば、半導体設計のシミュレーション、自動車の衝突時影響解析などにおいて必要な演算処理（ジョブ）を複数のホスト（コンピュータ）により実行させる、グリッドコンピューティングを利用した情報処理システムである。
【００４２】
同図において、端末２１−１および２１−２は、例えば、パーソナルコンピュータなどにより構成され、演算処理（ジョブ）の実行命令を出力する。端末２２−１および２２−２乃至２４−１および２４−２も同様である。端末２１−１および２１−２は、部署A（部署に限らずプロジェクトなどであってもよい）に属するエンドユーザが利用する端末とし、端末２２−１および２２−２は、部署Ｂに属するエンドユーザが利用する端末とする。また、端末２３−１および２３−２は、部署Ｃに属するエンドユーザが利用する端末とし、端末２４−１および２４−２は、部署Ｄに属するエンドユーザが利用する端末とする。なお、各部署の端末を個々に区別する必要がない場合、単に端末２１乃至２４と称する。
【００４３】
端末２１乃至２４から出力されたジョブ（の実行命令）は、キュー３１−１乃至３１−３に、一旦蓄積されてから、ホスト４１−１乃至４１−６に出力される。キュー３１−１乃至３１−３は、ホスト４１−１乃至４１−６におけるジョブの実行状況を管理して、各ホストの処理負荷、予め設定されたホストのグルーピング情報などに基づいて、ジョブをホスト４１−１乃至４１−６に出力する。この例では、端末２１がキュー３１−１に接続され、端末２２がキュー３１−２に接続され、端末２３および２４がキュー３１−３に接続されている。なお、キュー３１−１乃至３１−３は、実際には、ソフトウェアにより実現され、ホスト４１−１乃至４１−６に対して、負荷状況や仕事の優先順位、その他予め設定されたルールなどに応じて、各ホストにジョブが入力され、各ホストにおいてジョブに応じたCPU（リソース）の割当がなされるように、各ホストへのジョブの入力を制御する。
【００４４】
ホスト４１−１乃至４１−６は、例えば、LAN（Local Area Network）またはWAN（Wide Area Network）などのネットワークにより相互に接続された、UNIX（登録商標）サーバなどにより構成されるコンピュータであり、エンドユーザから指令されたジョブを実行し、その実行結果を、キュー３１−１乃至３１−１を介して端末２１乃至２４に出力する。また、必要に応じて、ファイルシステム４２にアクセスし、所定のデータを読み出し、または記憶させる。
【００４５】
なお、ホスト４１−１乃至４１−６は、それぞれ複数のCPUを有するコンピュータであってもよいし、単一のCPUを有するコンピュータであってもよい。また、ホスト４１−１乃至４１−６は、それぞれ1枚の基盤に, CPU, メモリ, ハードディスクなどコンピュータ1台分の機能を搭載し、１の筐体に挿入されるもの（いわゆるブレードサーバ）であってもよいし、あるいはまた、それら種類の異なるコンピュータが複数組み合わせられたものであってもよい。
【００４６】
また、キュー３１−１乃至３１−３には、解析装置５１が接続される。解析装置５１は、例えば、パーソナルコンピュータなどにより構成され、例えば、情報処理システム１を管理、運用するシステム管理者により利用される。
【００４７】
解析装置５１は、キュー３１−１乃至３１−３にアクセスして、各キューに接続されるホストに関する情報、各キューに投入されたジョブの実行状況（例えば、待ち時間、実行時間など）に関する情報であるジョブデータなどを取得して記憶（蓄積）するとともに、ジョブデータに基づいて、情報処理システム１のジョブの入力開始から結果出力の完了までに要する時間であるターンアラウンドタイム（以下、TAT（Turn Around Time）と称する）を演算し、キューの種類や実行時間毎のＴＡＴの変化に基づいて、後述するＴＡＴ指標をユーザ（システム管理者）に提示する。また、解析装置５１は、ホストを追加または削減した場合、キューの種類や実行時間毎のＴＡＴ指標がどのように変化するかを、上述したジョブデータに基づいてシミュレーションにより演算し、そのシミュレーション結果をユーザに提示する。なお、ＴＡＴ指標とシミュレーションについては後述する。
【００４８】
ここでは、情報処理システム１が８の端末、３のキュー、６のホストにより構成される例について説明したが、端末、キュー、ホストの数は、これに限られるものではなく、実際には、もっと多くの端末やホストにより構成される。
【００４９】
図２は、解析装置５１の構成例を示すブロック図である。同図において、CPU（Central  Processing  Unit）７１は、ROM（Read  Only  Memory）７２に記憶されているプログラム、または記憶部７８からRAM（Random  Access  Memory）７３にロードされたプログラムに従って各種の処理を実行する。RAM７３にはまた、CPU７１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００５０】
CPU７１、ROM７２、およびRAM７３は、バス７４を介して相互に接続されている。このバス７４にはまた、入出力インタフェース７５も接続されている。
【００５１】
入出力インタフェース７５には、キーボード、マウスなどよりなる入力部７６、ディスプレイ、スピーカなどよりなる出力部７７、ハードディスクなどより構成される記憶部７８、モデム、ターミナルアダプタ、ネットワークインタフェースなどより構成される通信部７９が接続されている。
【００５２】
通信部７９は、ＬＡＮ、インターネットなどのネットワークを介しての他の装置との通信処理を行う。記憶部７８には、アプリケーションソフトウェアなどのプログラム、プログラムが実行する処理により生成されるデータなどが適宜記憶される。
【００５３】
入出力インタフェース７５にはまた、必要に応じてドライブ８０が接続され、ドライブ８０には、本発明のプログラムが記録された記録媒体として、例えば、リムーバブルメディア８１が装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部７８にインストールされる。
【００５４】
図３は、CPU７１により実行され、ＴＡＴ指標の演算、シミュレーションを行うソフトウェアの機能的構成例を示すブロック図である。
【００５５】
データ取得部１２１は、上述したジョブデータを取得して、指標演算部１２２またはシミュレーション実行部１２３に出力する。指標演算部１２２は、データ取得部１２１により取得されたジョブデータに基づいて、各ジョブのＴＡＴと、後述するＴＡＴ指標を演算し、結果出力部１２６に出力する。
【００５６】
シミュレーション実行部１２３は、データ取得部１２１と、実行条件生成部１２４により生成された仮想的な実行条件とに基づいて、ジョブ実行のシミュレーションを行い、シミュレーション結果を指標演算部１２２に出力する。実行条件生成部１２４は、シミュレーションデータ入力部１２５から供給されるデータに基づいて、仮想的な実行条件を生成する。
【００５７】
シミュレーションデータ入力部１２５は、ユーザによる、例えば、ホストの仮想的な追加または削減に関する情報、およびシミュレーションする期間の指定など、シミュレーション行うにあたっての条件の設定入力を受け付け、実行条件生成部１２４に供給する。
【００５８】
結果出力部１２６は、指標演算部１２２により演算されたＴＡＴの値に基づいて、所定のGUIのデータを生成してユーザに提示する。
【００５９】
ここで、ＴＡＴとＴＡＴ指標について詳細に説明する。図４は、ＴＡＴと説明する図である。上述したようにＴＡＴは、ジョブの入力開始から結果出力の完了までに要する時間であり、エンドユーザからみた情報処理システムのスループットとなる。ＴＡＴは、エンドユーザが端末を介してジョブの実行命令を出力した時刻であるジョブ投入時刻から、ジョブがホストに入力される時刻であるジョブ実行開始時刻までの間の待ち時間と、ジョブ実行開始時刻から、ホストがジョブの実行（演算）を完了した時刻であるジョブ終了時刻までの間の実行時間により構成される。すなわち、待ち時間においてジョブは、キューに蓄積された状態であり、実行時間においてジョブはホストで実行されていることになる。
【００６０】
したがって、ホストの数を増やすなどしてキューに蓄積される時間を短縮し、待ち時間を短くするか、またはホストの性能（処理能力）を向上させて実行時間を短くすることによりＴＡＴを小さくすることができる。ここで、あるジョブについて、そのジョブが、仮に待ち時間なく、最も性能の高いホストにより実行された場合のＴＡＴをＴＡＴ最速値とすると、ＴＡＴ指標は式（１）により表すことができる。
【００６１】
【数１】
2006040018.tif 000003
【００６２】
すなわち、ＴＡＴ指標は、あるジョブについて、ＴＡＴ最速値と、実際に投入されて実行されたジョブのＴＡＴであるＴＡＴ実測値との比となり、そのジョブの実行状況を相対的に評価するための指標となる。従って、ＴＡＴ指標が１に近いほど、エンドユーザにとってスループットが優れたジョブの実行状況であり、ＴＡＴ指標が０に近いほど、エンドユーザにとってスループットが悪いジョブの実行状況であると評価することができる。また、全てのジョブのＴＡＴ指標を求めることにより、情報処理システム１のリソース（CPUなど）全体がどれだけ効率的に利用されているかを表すことができる。
【００６３】
また、ＴＡＴ最速値は、ホストの実行時間の最速値と等しいので、ＴＡＴ指標は、式（２）のように変形することができる。
【００６４】
【数２】
2006040018.tif 000004
【００６５】
さらに、実行時間最速値と、実行時間実測値との比は、最も性能の高いホストのＣＰＵ性能と、実際にジョブを実行したホストのＣＰＵ性能の比に等しいので、式（２）を式（３）のように変形することができる。
【００６６】
【数３】
2006040018.tif 000005
【００６７】
すなわち、ＴＡＴ指標は、実行時間最速値とＴＡＴ実測値の比により表させる項、実測ホストの性能（ＣＰＵＦ）と最も処理能力が高いホストの性能（Max_CPUF）との比により表される項の積により表される。上述した２つ項のうち、前者は、ジョブの待ち時間の長さに関する指標であるＷＡＩＴ指標と称され、後者は、ジョブの実行時間の長さに関する指標であるＲＵＮ指標と称される。
【００６８】
図５は、解析装置５１において、ユーザがTAT指標の提示を指令する場合表示されるGUI（Graphical User Interface）の例を示す図である。ボックス２０１は、TATを演算するとき、演算のもととなるジョブデータの種類を指定するボックスである。この例では、ボックス２０１に「Queue」が入力されており、上述したキュー（例えば、キュー３１−１乃至３１−３）毎のジョブデータに基づいて、それぞれTATが演算される。フィールド２０２には、ジョブデータの集計期間が表示される。この例では、「2003/05/20  00:00（西暦2003年5月20日午前0時を表す）〜2003/07/29  00:00（西暦2003年７月29日午前0時を表す）」と表示されており、解析装置５１により記憶されているキュー毎のジョブデータ収集期間（集計期間）が表示されている。
【００６９】
ボックス２０４−１乃至２０４−４およびボックス２０５−１乃至２０５−４は、それぞれジョブデータの分析（ＴＡＴの演算を行う）期間を指定するための開始日時および終了日時を指定するボックスであり、この例では、開始日時が「2003年06月10日00時」と指定されており、終了日時が「2003年06月15日00時」と指定されている。これにより、開始日時から終了日時までの間に蓄積されたジョブデータに基づいてＴＡＴが演算される。
【００７０】
図６は、ジョブデータを構成する具体的な項目の例を説明する図である。項目「JobID」は個々のジョブに割り付けられたＩＤであり、これによりジョブが個別に識別される。項目「投入時刻」は、ジョブがキューに投入された時刻を表す情報であり、項目「実行開始時刻」は、ジョブがホストで実行開始された（ホストに入力された）時刻を表す情報であり、項目「終了時刻」は、ジョブの実行が終了した時刻を表す情報である。上述したように、投入時刻から終了時刻までの時間が、このJobIDに対応するジョブのＴＡＴとなる。
【００７１】
項目「キュー名」は、このジョブが投入されたキューを特定する情報であり、項目「実行ホスト名」は、このジョブが実行されたホストを特定する情報である。項目「ジョブ投入端末名」は、このジョブをキューに投入した端末を特定する情報であり、項目「ユーザ名」は、ジョブを投入したユーザ（エンドユーザ）を特定する情報である。
【００７２】
このようにして構成されるジョブデータが、ジョブ毎に生成されて、解析装置５１の例えば、記憶部７８に蓄積されている。
【００７３】
図５に戻って、ボタン２０６は、ＴＡＴを演算し、ＴＡＴ指標の提示を指令するとき押下するボタンであり、ボタン２０６が押下されると、図３のデータ取得部１２１により、分析期間として指定された期間に実行された複数のジョブに対応するジョブデータが取得され、指標演算部１２２により、複数のジョブのＴＡＴと、ＴＡＴ指標が演算され、結果出力部１２６により、演算されたＴＡＴ指標がGUIとして出力される。すなわち、図５のボタン２０６が押下されると、解析装置５１のディスプレイには、図７に示されるようなGUIが表示される。なお、ＴＡＴ指標の演算において必要となる、上述したＴＡＴ最速値は、予め解析装置５１の記憶部７８に記憶されているものとする。
【００７４】
図７は、ＴＡＴ指標を、ユーザに提示（表示）するGUIの表示例を示す図である。同図において、フィールド２３１には、横軸を時間とし、縦軸をＴＡＴ指標として、ＴＡＴ指標の時間に伴う変化が折れ線グラフで表示されている。なお、このグラフにおける各プロット点は、その時点における（複数の）ジョブのＴＡＴ指標の平均値とされる。
【００７５】
また、例えば、複数のキューのジョブデータについて、ＴＡＴ指標が演算され、それらの演算結果がまとめてGUIに表示されるようにしてもよい。図８はこの場合のGUIの表示例を示す図である。同図においては、３つのキュー（Queue01，Queue02，Queue03）のジョブデータに基づいて演算された時間に伴って変化するＴＡＴ指標が、それぞれ線２７１乃至２７３で表され、折れ線グラフとして表示されている。
【００７６】
さらに、上述したWAIT指標やRUN指標などが必要に応じて演算され、表示されるようにすることも可能である。
【００７７】
この他、解析装置５１において、Queue01，Queue02，Queue03のそれぞれのキューにおける待ち時間の原因（例えば、ホストの実行能力不足、ソフトウェアのライセンス待ちなど）を分析して、待ち時間の主たる原因がユーザに提示されるようにしてもよい。
【００７８】
次に、解析装置５１によるシミュレーション処理について、図９のフローチャートを参照して説明する。この処理は、例えば、解析装置５１に対してユーザがシミュレーション処理の起動を指令するコマンドを入力したとき実行される。
【００７９】
ステップＳ１において、シミュレーションデータ入力部１２５は、シミュレーション条件の設定入力を受け付ける。このとき、解析装置５１のディスプレイに、例えば、図１０に示されるようなGUIが表示され、表示されたGUIに基づいてユーザによるシミュレーション条件の設定入力が行われる。
【００８０】
図１０は、シミュレーション処理において表示されるGUIの表示例を示す図である。同図において、タブ３０１（キュー設定）が選択されている。タブ３０１が選択されている場合、キュー毎に、そのキューに接続されるホストの追加または削除などの条件の設定が行われる。
【００８１】
フィールド３２１は、キュー一覧が表示されるフィールドであり、この例では、QueueA乃至QueueEが表示されている。ユーザはフィールド３２１に表示されたキューの中から所望のキューを選択して、そのキューに接続されるホストを、仮想的に追加または削除して、シミュレーション条件の設定を行う。この例では、QueueAがハイライト表示されて、選択されている。
【００８２】
フィールド３２１において、所定のキュー（いまの場合、QueueA）が選択されると、フィールド３２４には、選択されたキューに接続されているホストのホスト名が表示される。この例では、HostA1乃至HostA3が表示されている。なお、各キューに接続されているこれらホストに関する情報は、マスターテーブルとして予め解析装置５１に記憶されている。
【００８３】
フィールド３２２は、フィールド３２４に表示されたホスト名に対応するホストがマスターテーブルに記録されているか否かを示すフィールドであり、実際に接続されているホストは、マスターテーブルに記録されているので「○」が表示される。一方、仮想的に追加されたホストは、マスターテーブルに記録されていないので「○」が表示されない。この例では、HostA1乃至HostA3は、QueueAに実際に接続されているホストなので、すべて「○」が表示されている。
【００８４】
フィールド３２５は、フィールド３２４に表示されたホスト名に対応するホストのCPUFが表示されるフィールドであり、この例では、HostA1乃至HostA3のCPUFがそれぞれ「3.0」、「2.0」、「3.0」と表示されている。なお、CPUFは、ホストの処理性能を正規化した数値であり、例えば、CPUFが「2.0」のホストＸは、CPUFが「１.0」のホストＹの２倍の処理能力を持っており、同じジョブを実行する場合、ホストＸによる実行時間は、ホストＹによる実行時間の半分となる。
【００８５】
フィールド３２６は、フィールド３２４に表示されたホスト名に対応するホストのCPU数が表示されるフィールドであり、この例では、HostA1乃至HostA3のCPU数がそれぞれ「２」、「１」、「２」と表示されている。また、フィールド３２６は、フィールド３２４に表示されたホスト名に対応するホストにおいて同時に処理可能な最大ジョブ数（MXJ）が表示されるフィールドであり、この例では、HostA1乃至HostA3のMXJがそれぞれ「２」、「２」、「２」と表示されている。
【００８６】
ホストを仮想的に追加する場合、例えば、ボタン３１１が押下されることにより、図１１に示されるようなGUIが表示される。図１１は、仮想的に追加するホストの情報を登録するGUIの表示例を示す図である。同図において、フィールド３７１は、登録するホストの数を指定するフィールドであり、この例では「１」が入力されている。
【００８７】
フィールド３７２は、登録するホストのホスト名を入力するフィールドであり、この例では、「NewHost１」が入力されている。フィールド３７３は、登録するホストのCPUFを入力するフィールドであり、この例では、「3.0」が入力されている。フィールド３７４は、登録するホストのCPU数を入力するフィールドであり、この例では、「１」が入力されている。フィールド３７５は、登録するホストのMXJを入力するフィールドであり、この例では、「２」が入力されている。また、この他、そのホストでジョブを実行可能なユーザ数、ユーザ名、１ユーザが同時に実行可能なジョブ数の制限など、そのホストでのジョブの実行条件が必要に応じて設定されるようにしてもよい。
【００８８】
なお、フィールド３７１に、例えば、「３」が入力され、複数（３）のホストの登録が指定されている場合、フィールドブロック３８１が複数（３個）連続して表示され、複数のホストの登録が行われる。そして、ボタン３７６が押下されると、ホストの仮想的な追加が行われ、図１０のGUIの表示が更新される。
【００８９】
図１２は、図１０に示される状態から３のホストを仮想的に追加し、１のホストを仮想的に削除した場合のGUIの表示例を示す図である。この例では、フィールド３２４に、仮想的に追加された３のホスト名が、それぞれ「NewHost1」、「NewHost2」、「NewHost3」と表示され、フィールド３２５乃至３２７には、それぞれフィールド３２４に表示された各ホスト名に対応する各ホストのCPUF、CPU数、MXJが表示されている。そして、追加／削除のステータスを表すフィールド３２３には、「NewHost1」、「NewHost2」、「NewHost3」について図中右向きの矢印が表示され、これらのホストが新規に追加されたことが表示されている。また、仮想的に追加されたホストはマスターテーブルに記録されていないので、フィールド３２２には、「NewHost1」、「NewHost2」、「NewHost3」について「○」が表示されていない。
【００９０】
ユーザは、例えば、ボタン３１２を押下することにより、ホストを仮想的に削除することもできる。この例では、フィールド３２３の中のHostA2に対応する位置に図中左向きの矢印が表示されており、このホストが新規に削除されたことが表示されている。
【００９１】
なお、ボタン３１３を押下し、図１１を参照して上述した場合と同様の情報を入力することにより、ホストが（仮想的にではなく）実際にマスターテーブルに追加される。また、ボタン３１４を押下することにより、ホストが（仮想的にではなく）実際にマスターテーブルから削除される。
【００９２】
そして、インフォメーションを表示するフィールド３３１には、仮想的に追加または削除されたホストについての情報が表示されている。この他、ユーザは、必要に応じて、QueueA以外のキューに対してもホストの仮想的な追加または削除を行い、その後、タブ３０３をクリックして図１３に示されるGUIを表示させる。
【００９３】
なお、タブ３０２（ホストグループ設定）が選択されている場合、複数のホストの集合体であるホストグループに対するシミュレーション条件の設定が同様に行われる。すなわち、ホストグループ毎に、そのホストグループに含まれるホストの追加または削除などの条件の設定が行われる。
【００９４】
図１３は、タブ３０３がクリックされることにより表示される、シミュレーション条件の設定を入力し、シミュレーションの実行を指令するGUIの表示例を示す図である。同図において、フィールド３８１−１乃至３８１−４および３８２−１乃至３８２−４は、シミュレーション期間の開始日時および終了日時を指定するフィールドであり、例えば、西暦2003年9月3日0時から西暦2003年9月13日0時までの期間に実行されたジョブのジョブデータに基づいてシミュレーションを実行する場合、同図に示されるように、フィールド３８１−１乃至３８１−４および３８２−１乃至３８２−４に数値が入力される。
【００９５】
フィールド３９１は、シミュレーションの対象となるキューが表示されるフィールドであり、この例では、QueueA、QueueＣ乃至QueueEが表示されている。フィールド３９２乃至３９５は、フィールド３９１に表示されたそれぞれのキューにおける、合計ＴＡＴ、合計実行時間、合計待ち時間、平均ＴＡＴ指標がそれぞれ表示されるフィールドであり、シミュレーションの実行後にそれらの数値が表示される（今の場合、シミュレーションの実行前なのでフィールド３９２乃至３９５には、まだ数値は表示されない）。
【００９６】
この後、ユーザがボタン３７１を押下することにより、シミュレーションの条件の設定入力が完了し、シミュレーションが実行される。
【００９７】
図９に戻って、ステップＳ２において、実行条件生成部１２４は、各ホストの仮想的実行条件を生成する。このとき、仮想的に追加または削除されたホストの情報と、上述したマスターテーブルに基づいて、仮想的な実行条件が設定される。すなわち、実際に各キューに接続されているホストの数、各ホストのCPUF、CPU数、同時に実行可能なジョブ数、ホストでジョブを実行可能なユーザ数、ユーザ名、１ユーザが同時に実行可能なジョブ数の制限などの情報が実行条件として記述されたマスターテーブルに対して、ステップS1の処理において入力されたシミュレーションの条件に基づく変更（ホストの仮想的な追加または削除に関する情報）が加えられ、いわば仮想のマスターテーブルが生成され、これが仮想的実行条件とされる。
【００９８】
ステップS３において、シミュレーションデータ入力部１２５は、図１３のGUIにおけるユーザの指定に基づいて、シミュレーション期間を設定する。ステップS２で設定された仮想的実行条件のデータと、ステップS３で設定されたシミュレーション期間のデータは、シミュレーション実行部１２３に出力される。
【００９９】
ステップS４において、シミュレーション実行部１２３は、図１４を参照して後述するＴＡＴシミュレーション処理を実行する。これにより、シミュレーション期間に実行されたジョブが仮想的に実行される。すなわち、実際に実行されたジョブの仮想的実行条件下における実行（シミュレーション）結果（実行時間、待ち時間など）が出力される。
【０１００】
このようにして、ジョブのシミュレーション処理（仮想的な実行）が行われる。
【０１０１】
次に、図１４のフローチャートを参照して、図９のステップＳ４のTATシミュレーション処理の詳細について説明する。
【０１０２】
ステップS２１において、シミュレーション実行部１２３は、ステップS３の処理で設定された（図１３のGUIにおいて指定された）シミュレーション期間に実行されたジョブに対応するジョブデータを取得する。
【０１０３】
ステップS２２において、シミュレーション実行部１２３は、ステップS２１で取得したジョブデータをソートする。例えば、図１５に示されるように、ステップS２１で、QueueAとQueueBで実行されたジョブ１乃至ジョブ６のジョブデータが取得されたものとする。このとき取得されたジョブデータは、そのジョブの投入時刻が早い順に並んでいるので、ステップS２２では、各ジョブデータを、キュー毎に投入時刻が早い順にソートする。これにより、ジョブ１乃至ジョブ６の順で並んでいたジョブデータが、ジョブ１，ジョブ２，ジョブ５，ジョブ３，ジョブ４，ジョブ６の順に並べられ、QueueAとQueueB毎に投入時刻が早い順にソートされる。
【０１０４】
図１４に戻って、ステップS２３において、シミュレーション実行部１２３は、ステップS２２でソートされたジョブデータに基づいて、図１６を参照して後述する仮想実行処理を行う。これにより、各ジョブが仮想的実行条件下で実行され、その実行結果である仮想ジョブデータが生成される。
【０１０５】
ステップS２４において、指標演算部１２２および結果出力部１２６は、図１９を参照して後述する結果出力処理を実行する。これにより、ステップＳ２３の実行結果に基づいて、ＴＡＴとＴＡＴ指標が演算され、それらの情報がユーザに提示される。
【０１０６】
次に、図１６のフローチャートを参照して、図１４のステップＳ２３の仮想実行処理の詳細について説明する。
【０１０７】
ステップＳ５１において、シミュレーション実行部１２３は、変数ｎに値１をセットする。
【０１０８】
ステップＳ５２において、シミュレーション実行部１２３は、図１４のステップＳ２２の処理によりソートされたジョブデータの中からｎ番目のジョブデータを読み込む。
【０１０９】
ステップＳ５３において、シミュレーション実行部１２３は、ステップＳ５２で読み込んだジョブデータの投入時刻において、このジョブデータのジョブを実行可能なホストがあるか否かを判定し、実行可能なホストがあると判定された場合、ステップＳ５５に進み、このジョブデータのジョブの仮想的な、実行開始時刻、および実行ホスト名をそれぞれ記録する。
【０１１０】
一方、ステップＳ５３において、ジョブデータの投入時刻において、このジョブデータのジョブを実行可能なホストがないと判定された場合、処理はステップＳ５４に進み、シミュレーション実行部１２３は、時刻をずらして再びステップＳ５３の処理に戻る。
【０１１１】
ステップＳ５５の処理の後、ステップＳ５６において、シミュレーション実行部１２３は、このジョブデータのジョブが、仮想的実行条件下で実行された場合の、仮想的な実行時間を算出し、ステップＳ５７において、ステップＳ５５で記録された実行開始時刻と、ステップＳ５６の処理で算出された実行時間とに基づいて、このジョブの仮想的な終了時刻を算出して記録する。
【０１１２】
ステップＳ５８において、シミュレーション実行部１２３は、変数ｎの値を１だけインクリメントして、ステップＳ５９に進み、ｎ番目のジョブデータがあるか否かを判定し、ｎ番目のジョブデータがあると判定された場合、処理は、ステップＳ５２に戻り、それ以降の処理が繰り返し実行される。すなわち、ジョブデータの数だけ上述したステップS５２乃至S５９の処理が繰り返し実行されることになる。
【０１１３】
ここで、図１７と図１８を参照して、ステップＳ５３乃至Ｓ５７の処理をさらに詳しく説明する。
【０１１４】
例えば、図１７に示されるように、実際の処理（ジョブデータ）では、あるキュー（例えば、QueueA）に、ホストAが接続されており、QueueAに投入されたジョブ１とジョブ２が連続してホストＡで実行されていたものとする。（同図においては、ジョブ１とジョブ２の実行時間は矢印で示され、図中横方向が時間軸となる。）このとき、ホストＡは同時に実行可能なジョブ数（ＭＸＪ）が１であり、ジョブ２は、ジョブ１の実行中の時刻Ｐにおいて投入されたが、ジョブ１が終了するまで待って（キューに蓄積され）、時刻ＱからホストＡで実行され、時刻Ｒに終了したものとする。なお、ジョブの投入開始時刻、実行開始時刻、終了時刻、実行ホスト（名）などの情報は、図６を参照して上述した通りジョブデータに記述されている。
【０１１５】
一方で、ユーザが設定した仮想的実行条件（図９のステップＳ１、Ｓ２）下においては、QueueAにホストBが、新たに仮想的に追加されていたものとする。なお、ホストAとホストＢのCPUFはともに５とする。この場合、シミュレーション実行部１２３は、仮想的実行条件下において、ジョブ２の投入開始時刻に、ジョブ２を実行可能なホストがあるか否かを判定する（図１６のステップS５３）。
【０１１６】
この場合、ジョブ２は、ジョブ１の終了を待たずとも、その投入開始時刻である時刻Ｐにおいて仮想的に追加されたホストBで実行可能なので、シミュレーション実行部１２３は、ホストＢを仮想的な実行ホスト名、ジョブ２の仮想的な実行開始時刻を時刻Ｐとして記録（図１６のステップＳ５５）する。そして、ホストＢにおけるジョブ２の仮想的な実行時間を算出する（図１６のステップS５６）。いまの場合、ホストＢのCPUF（処理性能）はホストAのCPUFと等しいので、ジョブ２の仮想的な実行時間は、実際の処理におけるジョブ２の実行時間と等しくなる。そして、シミュレーション実行部１２３は、時刻Ｐにジョブ２の実行時間を足しこんで仮想的な終了時刻である時刻Ｒ´を算出して記録する（図１６のステップS５７）。
【０１１７】
また、図１８に示されるように、実際の処理では、あるキュー（例えば、QueueA）に、そのCPUFが５であるホストAが接続されており、QueueAにジョブ３が投入され、ホストＡで実行されていたものとする（同図においては、ジョブ３の実行時間は矢印で示され、図中横方向が時間軸となる。）。ジョブ３は時刻ＳでホストＡに実行開始され、時刻Ｅで終了したものとする。一方で、ユーザが設定した仮想的実行条件下においては、QueueAからホストAが削除され、CPUFが10であるホストBが、新たに仮想的に追加されていたものとする。
【０１１８】
この場合、ジョブ３の仮想的な実行開始時刻は、実際の処理における実行開始時刻である時刻Sと変わらないが、仮想的に追加されたホストBのCPUF（処理性能）は、実際の処理においてジョブ３を実行したホストAのCPUFの２倍とされているので仮想的な実行時間は、実際の処理における実行時間と異なったものとなる。
【０１１９】
いまの場合、シミュレーション実行部１２３は、ホストＢを仮想的な実行ホスト名、ジョブ２の仮想的な実行開始時刻を時刻Sとして記録（図１６のステップＳ５５）する。そして、ホストＢにおけるジョブ２の仮想的な実行時間を算出する（図１６のステップS５６）。すなわち、ホストＢのCPUF（処理性能）はホストAの２倍なので、ジョブ３の仮想的な実行は、実際の処理におけるジョブ３の実行時間の２分の１と算出される。そして、シミュレーション実行部１２３は、時刻Ｓにジョブ３の仮想的な実行時間を足しこんで仮想的な終了時刻である時刻Ｅ´を算出して記録する（図１６のステップS５７）。
【０１２０】
あるいはまた、ユーザが設定した仮想的実行条件下においては、所定のホストが、仮想的に削除されるなどして、ジョブの投入時刻に、そのジョブを実行可能なホストがないと判定された場合（図１６のステップＳ５３）、シミュレーション実行部１２３は、仮想的実行条件下においてそのジョブが実行可能となる時刻まで、そのジョブの仮想的な実行開始時刻をずらす（図１６のステップＳ５４）。
【０１２１】
なお、この例では、仮想的な実行ホストのMXJ、CPUFのみをホストの実行条件として考慮しているが、ホストでジョブを実行可能なユーザ数、ユーザ名、１ユーザが同時に実行可能なジョブ数の制限などが設定されている場合、それらの内容もホストの実行条件として考慮される。
【０１２２】
このようにすることで、実際にホストの追加または削減が実施されなくても、シミュレーション期間として設定された期間に実行された各ジョブを、仮想的実行条件のもとで、仮想的に実行（シミュレーション）し、仮想的に実行された各ジョブの待ち時間、実行時間などを算出することができる。
【０１２３】
図１６に戻って、ステップS５９において、ｎ番目のジョブデータがないと判定された場合、処理はステップS６０に進み、シミュレーション実行部１２３は、ステップS５２の処理で読み込んだ各ジョブのジョブデータ、並びにステップS５５とS５７の処理で記録された各ジョブの仮想的な実行開始時刻、仮想的な実行ホスト名、および仮想的な終了時刻に基づいて、仮想ジョブデータ（シミュレーションの結果である仮想的なジョブデータ）を生成する。
【０１２４】
このようにして、シミュレーションの条件として設定された仮想的実行条件下で、シミュレーション期間として指定された期間において実際に実行されたジョブが、仮想的に実行されて、仮想ジョブデータが生成される。
【０１２５】
次に、図１９のフローチャートを参照して、図１４のステップS２４の結果出力処理の詳細について説明する。
【０１２６】
ステップS８１において、指標演算部１２２は、図１６を参照して上述した処理により生成された仮想ジョブデータに基づいて、各ジョブのＴＡＴを演算する。
【０１２７】
ステップＳ８２において、指標演算部１２２は、各ジョブのＴＡＴに基づいて、各ジョブのＴＡＴ指標を演算する。なお、ＴＡＴ指標は、上述した式（１）に基づいて演算される。
【０１２８】
ステップＳ８３において、指標演算部１２２は、仮想ジョブデータ、並びにステップＳ８１およびＳ８２の処理で演算された各ジョブのＴＡＴとＴＡＴ指標に基づいて、ユーザに提示（表示）する表示用データを演算する。このとき、例えば、各ジョブのＴＡＴの合計値、実行時間の合計値、ＴＡＴ指標の平均値などが演算される。また、必要に応じて上述したWAIT指標やRUN指標、あるいはまた、各ホストの稼働率などが演算されるようにしてもよい。
【０１２９】
ステップS８４において、結果出力部１２６は、ステップS８３の処理で演算された表示用データに基づいて、GUIを表示する。
【０１３０】
このとき、例えば、図２０に示されるようなGUIが解析装置５１のディスプレイに表示される。図２０は、図１３に表示されたGUIにおいて、シミュレーションの実行が終了した場合の表示例を示す図である。この例では、フィールド３９２乃至３９５に、フィールド３９１に表示された各キューに対応して、合計ＴＡＴ、合計実行時間、合計待ち時間、および平均TAT指標の各値がそれぞれ表示されている。なお、フィールド３９２乃至３９５の、矢印の左側の値は、実際の処理における（ジョブデータに基づいて算出された）値、矢印の右側の値は、仮想的実行条件下でシミュレーションされた（仮想ジョブデータに基づいて算出された）値とされる。
【０１３１】
この例では、各キューに対応して、合計ＴＡＴ、合計実行時間、合計待ち時間、および平均TAT指標の各値がそれぞれ表示されるようにしたが、必要に応じて、上述したWAIT指標やRUN指標、あるいはまた、各ホストの稼働率などが表示されるようにしてもよい。さらに、各値が折れ線グラフなどのグラフで表示されるようにしてもよい。
【０１３２】
このようにして、ユーザは、ホストを仮想的に追加または削除して、ジョブを仮想的に実行（シミュレーション）することができる。このようにすることで、ユーザ（例えば、システム管理者）は、リソースの追加または削減により、情報処理システム１が所望の処理性能を有することができるか否かを予め把握することができ、例えば、処理性能の高いCPUを余分に確保したり、情報処理システム１の投資／維持費用を多額に計上したりする必要がなく、情報処理システム１の処理性能とコストを考慮して、情報処理システム１を最大限に効率的に利用することができる。
【０１３３】
上述した一連の処理をハードウェアで実現するか、ソフトウェアで実現するかは問わない。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータなどに、通信部７９を介して接続されるインターネットや、光ディスクなどのリムーバブルメディア８１からインストールされる。
【０１３４】
なお、本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０１３５】
【図１】本発明を適用した情報処理システムの構成例を示すブロック図である。
【図２】図１の解析装置の構成例を示すブロック図である。
【図３】図２のＣＰＵで実行されるソフトウェアの機能的構成例を示すブロック図である。
【図４】ＴＡＴを説明する図である。
【図５】TAT指標の提示を指令する場合表示されるGUIの例を示す図である。
【図６】ジョブデータを構成する項目の例を示す図である。
【図７】ＴＡＴ指標を提示（表示）するGUIの表示例を示す図である。
【図８】ＴＡＴ指標を提示（表示）するGUIの別の表示例を示す図である。
【図９】シミュレーション処理を説明するフローチャートである。
【図１０】シミュレーション処理において表示されるGUIの表示例を示す図である。
【図１１】仮想的に追加するホストの情報を登録するGUIの表示例を示す図である。
【図１２】シミュレーション処理において表示されるGUIの表示例を示す図である。
【図１３】シミュレーションの実行を指令するGUIの表示例を示す図である。
【図１４】ＴＡＴシミュレーション処理を説明するフローチャートである。
【図１５】ジョブデータのソートを説明する図である。
【図１６】仮想実行処理を説明するフローチャートである。
【図１７】仮想実行処理の詳細を説明する図である。
【図１８】仮想実行処理の詳細を説明する図である。
【図１９】結果出力処理を説明するフローチャートである。
【図２０】シミュレーション結果を表示するGUIの表示例を示す図である。
【符号の説明】
【０１３６】
１  情報処理システム，
２１−１乃至２４−２  端末，
３１−１乃至３１−３  キュー，
４１−１乃至４１−６  ホスト，
５１  解析装置，
７１  ＣＰＵ，
７８  記憶部，
８１  リムーバブルメディア，
１２１  データ取得部，
１２２  指標演算部，
１２３  シミュレーション実行部，
１２４  実行条件生成部，
１２５  シミュレーションデータ入力部，
１２６  結果出力部
【図１】
2006040018.tif 000006
【図２】
2006040018.tif 000007
【図３】
2006040018.tif 000008
【図４】
2006040018.tif 000009
【図５】
2006040018.tif 000010
【図６】
2006040018.tif 000011
【図７】
2006040018.tif 000012
【図８】
2006040018.tif 000013
【図９】
2006040018.tif 000014
【図１０】
2006040018.tif 000015
【図１１】
2006040018.tif 000016
【図１２】
2006040018.tif 000017
【図１３】
2006040018.tif 000018
【図１４】
2006040018.tif 000019
【図１５】
2006040018.tif 000020
【図１６】
2006040018.tif 000021
【図１７】
2006040018.tif 000022
【図１８】
2006040018.tif 000023
【図１９】
2006040018.tif 000024
【図２０】
2006040018.tif 000025