(57)【要約】【課題】コンピュータシステムで実行するジョブの実行計画の評価を、シミュレーションを用いて行う場合に、利用者が要求する時間内にシミュレーションを終了させ実行計画の評価を終了する。【解決手段】シミュレーションを実行する計算機の性能値を格納する性能格納部と、シミュレーションに用いる性能モデルを格納するモデルデータベースと、モデルデータベースに格納された性能モデルからシミュレーションに使用する性能モデルを作成するモデル作成部を有する。該モデル作成部は、ユーザが入力する制限時間と該性能格納部に格納された計算機の性能値をもとに、モデルの作成方法を変更する。該モデル作成部が作成した、性能モデルを用いてシミュレーションを実行し、ジョブの実行計画を評価する。【選択図】  図３
2005049922.tif 000002
【特許請求の範囲】
【請求項１】
ジョブの実行計画の評価をシミュレーションを用いて行う評価システムであって、ジョブの実行計画と制限時間を入力可能にする入力部と、ジョブモデルを格納するモデルデータベースと、モデルデータベースに格納されたジョブモデルからシミュレーションモデルを作成するモデル作成部と、シミュレーションを実行するシミュレーション実行部と、シミュレーションの結果から実行計画の評価をする評価部と、評価結果を出力する出力部を備えることを特徴とする評価システム。
【請求項２】
更にシミュレーションを実行する計算機の性能値を格納する性能格納部を含むことを特徴とする請求項１記載の評価システム。
【請求項３】
前記モデル作成部は、前記入力部に入力された制限時間と、前記性能格納部に格納された性能値に応じて、シミュレーションモデルを作成する方法を変更することを特徴とする請求項２記載の評価システム。
【請求項４】
前記モデル作成部は、前記シミュレーション実行部のシミュレーションの実行に要する時間が、前記入力部に入力された制限時間以下になるようにモデル作成方法を変更することを特徴とする請求項３記載の評価システム。
【請求項５】
前記モデル作成部がジョブモデルからシミュレーションモデルを作成する方法は、シミュレーションモデルのパラメータを設定する工程を含み、前記モデル作成部は、前記入力部に入力された実行計画からジョブの干渉の度合いを算出し、算出された干渉の度合いに従って、シミュレーションモデルのパラメータを変更することを特徴とする請求項３又は４記載の評価システム。
【請求項６】
前記出力部は、モデル作成部が作成したシミュレーションモデルを出力することを特徴とする請求項３記載の評価システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ジョブの実行計画の評価を行う評価システムに関する。
【０００２】
【従来の技術】
ジョブの実行計画に関する問題には、例えば、ジョブショップスケジューリング問題がある。
ジョブショップスケジューリング問題では、ｘ個のトランザクションがｙ個のジョブで構成されており、各ジョブはｚ個の計算機のいずれか一つによって処理される。各ジョブには、所要時間が定められている。また、一つのトランザクションを構成するジョブの間には先行関係がある。このとき、すべてのトランザクションを終了するまでの総所要時間がなるべく短くなるように、ジョブの実行計画（ジョブの開始時刻とジョブを実行する計算機）を決定することが問題である。
【０００３】
ジョブショップスケジューリング問題においては、ジョブの実行計画を評価する評価指標として、すべてのトランザクションを終了するまでの総所要時間が用いられる。
計算機がシングルタスク（同時に実行するジョブが一つ）である場合には、実行計画にしたがって各ジョブの所要時間の足し合わせることによって、実行計画の評価指標を算出することができる。
計算機がマルチタスク（同時に実行するジョブが複数）である場合には、複数のジョブが計算機を同時に利用するために、ジョブの所要時間が変化し、足し合わせによって総所要時間を算出することができない。そのため、マルチタスク環境における、実行計画を評価するために、離散イベントシミュレーションが広く用いられている。
離散イベントシミュレーションを用いれば、計算機がマルチタスクの場合であっても、実行計画の評価指標を算出することができる。
例えば、計算機がマルチタスクである場合に、計算機の性能指標をシミュレーションによって算出する方法として、マルチタスクシステムの評価システム及び予測方法並びにその方法プログラムを記録した記録媒体（特開２０００−２９８５９３号）が開示されている。特開２０００−２９８５９３における計算機の性能指標が、ジョブの所要時間に相当する。特開２０００−２９８５９３を使用してジョブの所要時間の算出を繰り返し行うと、実行計画の評価指標を算出できる。
また、米国ＨｙＰｅｒｆｏｒｍｉｘ  Ｉｎｃ．から、離散イベントシミュレーションを用いて、マルチタスク計算機の性能指標を算出するソフトウェア（Ｈｙｐｅｒｆｏｒｍｉｘ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｏｐｔｉｍｉｚｅｒ）が販売されている。
【特許文献１】
特開２０００−２９８５９３号公報
【０００４】
【発明が解決しようとする課題】
上述した離散イベントシミュレーションによるジョブ実行計画の評価においては、離散イベントシミュレーションの実行に、大量の演算をする必要がある。そのため、シミュレーションの実行に時間がかかり、実用上必要な時間内に、実行計画の評価を終了できない場合がある。
そこで、シミュレーションの実行を高速化し、利用者の要求する制限時間内に実行計画の評価を終了することが課題となる。
シミュレーションの実行を高速化する方策に、シミュレーションモデルを変更する方法がある。シミュレーションモデルによって、シミュレーションの実行に要する演算量が異なるため、より少ない演算量で実行できるシミュレーションモデルを使用すれば、シミュレーションの実行を高速化できる。
シミュレーションと現実の合致の度合い（シミュレーションの精度）は、シミュレーションモデルによって変わる。シミュレーションの精度が低いと、ジョブ実行計画の評価が不正確になるため、シミュレーションの精度は高いほうがよい。
シミュレーションの実行を高速化するために、シミュレーションモデルを変更した場合、シミュレーションの精度が低下する危険がある。シミュレーションモデルを変更する場合に、シミュレーションの精度の低下を抑えることが第２の課題である。
【０００５】
【課題を解決するための手段】
本発明の評価システムは、ジョブの実行計画と制限時間を入力可能にする入力部と、ジョブモデルを格納するモデルデータベースと、モデルデータベースに格納されたジョブモデルからシミュレーションモデルを作成するモデル作成部と、シミュレーションを実行するシミュレーション実行部と、シミュレーションの結果から実行計画の評価をする評価部と、評価結果を出力する出力部を備えている。
さらに、本発明の評価システムは、シミュレーションを実行する計算機の性能値を格納する性能格納部を備えている。
【０００６】
モデル作成部は、前記入力部に入力された制限時間と、前記性能格納部に格納された性能値に応じて、シミュレーションモデルを作成する方法を変更する。このシミュレーションモデル作成方法の変更により、前記シミュレーション実行部がシミュレーションの実行に要する時間を、入力部に入力された制限時間以下にする。
モデル作成部がジョブモデルからシミュレーションモデルを作成する方法は、シミュレーションモデルのパラメータを設定する工程を含む。モデル作成部は、前記入力部に入力された実行計画からジョブの干渉の度合いを算出し、算出された干渉の度合いが少ないジョブのジョブモデルを優先してシミュレーションモデルのパラメータを変更する。
【０００７】
【発明の効果】
本発明のジョブ実行計画の評価システムは、性能格納部と、モデル作成部を備えることによって、シミュレーションの実行に要する時間を入力部に入力された制限時間以下にすることができる。
【０００８】
【発明の実施の形態】
以下、本発明に係るジョブ実行計画の評価システムについて図面を参照しながら説明する。
この評価システムは、例えば図１に示すような制御計算機１０１、ネットワーク１０２、実行計算機Ｓ１（１０３）、および実行計算機Ｓ２（１０４）から構成されるコンピュータシステムに適用することができる。制御計算機１０１はネットワーク１０２を介して、実行計算機Ｓ１（１０３）、実行計算機Ｓ２（１０４）に対して、実行計算機上で動作するプログラムの実行を指示する。実行計算機上で動作するプログラムを本明細書ではジョブとよぶ。
図１のシステムでは、制御計算機１０１がジョブの実行計画（ジョブの開始時刻とジョブを実行する計算機）にしたがって、ジョブの実行指示をする。図２は、ジョブＡ、ジョブＢおよびジョブＣの３つのジョブを実行する際の実行計画の例である。図２に示すように、ジョブの実行計画とは、各ジョブの開始時刻２０１と実行する計算機２０２からなる。
【０００９】
本発明の評価システムは、例えば図２に示す実行計画の優劣を評価するために適用する。この評価システムは、図３に示すように、ジョブの実行計画と制限時間を入力可能にする入力部３０１と、モデルデータベースに格納されたジョブモデルからシミュレーションモデルを作成するモデル作成部３０２と、シミュレーションを実行するシミュレーション実行部３０３と、シミュレーションの結果から実行計画の評価をする評価部３０４と、評価結果を出力する出力部３０５と、ジョブモデルを格納するモデルデータベース３０６と、シミュレーションを実行する計算機の性能値を格納性能格納部３０７とを有する。
入力部３０１は、キーボード、ディスプレイ、マウス等の入出力装置で実装され、利用者がこれらの入出力装置を操作することで、ジョブの実行計画と、シミュレーション実行部３０３がシミュレーションの実行に要する時間の上限値である制限時間を入力可能にする。ここにジョブの実行計画の入力とは、図２に示すように各ジョブの開始時刻１０１と実行する計算機１０２を入力することである。
また、制限時間の入力とは、例えば「２分」というように、時間を入力することである。
【００１０】
モデルデータベース３０６には、ジョブモデルが格納される。図４に示すように、ジョブモデルとは所要時間４０１からなる。図４の例では、ジョブＡ、ジョブＢ、およびジョブＣの３つのジョブモデルを示している。
モデル作成部３０２は、入力部３０１に入力されたジョブの実行計画と、モデルデータベース３０６に格納されたジョブモデルから、シミュレーションモデルを作成する。シミュレーションモデルとは、実行計画内の各ジョブに対し、開始時刻、実行計算機、所要時間、およびイベント間隔を指定したものである。このうち、開始時刻と実行計算機は、入力部３０１に入力された実行計画から、所要時間は、モデルデータベース３０６に格納されている各ジョブの所要時間から指定される。イベント間隔を決定するアルゴリズムについては後述する。図５は、図４のジョブモデルがモデルデータベース３０６に格納され、図４の実行計画が入力部３０１に入力された場合に作成されるシミュレーションモデルである。図５では、イベント間隔に１０ミリ秒を指定して、シミュレーションモデルを例示している。本実施例においては、このイベント間隔が、請求項５の「シミュレーションモデルのパラメータ」に相当する。
【００１１】
離散イベントシミュレーションの実行に要する時間は、シミュレーション実行時に発生するイベントの回数に比例し、その比例定数は、シミュレーションを実行する計算機によって決まることが見出された。図６は、同一の計算機を用いて、イベント回数の異なるシミュレーションを実行し、その実行時間を調べた結果である。図６のグラフが直線関係にあることが、シミュレーションの実行に要する時間と、シミュレーション実行時に発生するイベントの回数が比例することを示している。図６の比例関係の比例定数は、シミュレーションを実行する計算機によって変化する。
性能格納部３０７は、該評価システムにおいてシミュレーションを実行する計算機を用いた場合の、シミュレーション実行時に発生するイベントの回数とシミュレーション実行時間の比例定数を格納する。この比例定数は、１イベントあたりの実行時間であり、例えば「１ミリ秒」といった時間が格納される。
モデル作成部３０２が、シミュレーションモデルのイベント間隔を決定するアルゴリズムについて説明する。図７にイベント間隔を決定するアルゴリズムのフローチャートを示す。
【００１２】
モデル作成部３０２はイベント間隔の初期値を持っており、この初期値を使ってシミュレーションモデルを作成する処理が処理７０１である。この初期値は、例えば「１０ミリ秒」といった時間で指定されており、処理７０１によって、例えば図５のシミュレーションモデルが作成される。
処理７０２では、初期値を用いて作成されたシミュレーションモデルから、イベント数の総計を算出する。シミュレーションモデルの各ジョブのイベント数は、所要時間／イベント間隔で算出され、イベント数の総計とは、各ジョブのイベント数の総和である。例えば図５のシミュレーションモデルでは、ジョブＡ、ジョブＢ、ジョブＣのイベント数は、それぞれ３万回（５分／１０ミリ秒）、６万回（１０分／１０ミリ秒）、９万回（１５分／１０ミリ秒）であるから、イベント数の総和は１８万回（３万回＋６万回＋９万回）である。
判断７０３では、処理７０２で算出したイベント数の総和と、性能格納部３０７に格納された性能値と、入力部３０１に入力された制限時間を使って、シミュレーションが制限時間内に終了するか否かを判断する。このために、処理７０２で算出したイベント総数と、性能格納部３０７に格納されている１イベントあたりの実行時間の積を計算し、制限時間と大小を比較する。制限時間の方が大きい場合、図７のフローチャートのＹＥＳ、制限時間の方が小さい場合、図７のフローチャートのＮＯに分岐する。例えば、図５のシミュレーションモデルでイベント総数が１８万回であり、性能格納部３０７に格納された性能値が１ミリ秒、制限時間が２分の場合、１８万×１ミリ秒＝３分で、これは制限時間の２分より大きいので、ＮＯと判断される。
【００１３】
処理７０４では、シミュレーションモデルから各ジョブの干渉度を算出する。
ジョブの干渉度は、開始時刻５０１から所要時間５０３の間に、同じ実行計算機５０２で実行している他のジョブの延べ時間で定義する。例えば、図５のシミュレーションモデルの場合、ジョブＡの干渉度は、開始時刻（１２：００）から所要時間（５分）の間（１２：００〜１２：０５）に、同じ実行計算機（Ｓ１）で実行している他のジョブはないので、干渉度は０である。ジョブＢの干渉度は、開始時刻（１２：０５）から所要時間（１０分）の間（１２：０５〜１２：１５）に、同じ計算機（Ｓ２）で実行しているジョブは、ジョブＣがあり、ジョブＢとジョブＣが同時に実行している時間が５分（１２：１０〜１２：１５）であるので、ジョブＢの干渉度は５である。同様に、ジョブＣの干渉度も５である。同時に実行しているジョブが２つ以上ある場合には、それぞれのジョブに対し同時に実行している時間を計算し、その総和が干渉度であり、これが干渉度の定義における「延べ時間」の意味である。
処理７０５では、シミュレーションモデルのイベント総数と性能格納部３０７に格納された性能値の積が、入力部３０１に入力された制限時間以下になるまで、シミュレーションモデルのイベント間隔を大きくする。このとき、処理７０４で算出した干渉度が小さいジョブのイベント間隔を優先して変更する。イベント間隔を大きくする場合、その上限はジョブの所要時間である。本実施例における、処理７０４で算出した干渉度が小さいジョブのイベント間隔を優先して変更する点が、請求項５の「算出された干渉の度合いがに従って、シミュレーションモデルのパラメータを変更すること」に相当する。
処理７０５を、図５のシミュレーションモデルで、性能格納部３０７に格納された性能値が１ミリ秒で、入力部３０１に入力された制限時間が２分の場合を例にとって説明する。処理７０４によってジョブＡ、ジョブＢ、ジョブＣの干渉度は、それぞれ０、５、５である。ジョブＡの干渉度が最小であるので、ジョブＡのイベント間隔を大きくする。ジョブＡのイベント間隔を大きくする場合、ジョブＡの所要時間が５分であるから、ジョブＡのイベント間隔の上限は５分である。ジョブＡのイベント間隔を５分にしたとき、シミュレーションモデルのイベント総数は１５万回（ジョブＡ０回、ジョブＢ６万回、ジョブＣ９万回）であり、性能値（１ミリ秒）との積は２分３０秒であり、制限時間（２分）より大きい。そのため、干渉度が次に小さいジョブＢとジョブＣのイベント間隔を大きくしていく。ジョブＢとジョブＣのイベント間隔を１２．５ミリ秒にしたとき、イベント総数は１２万回（ジョブＡ０回、ジョブＢ４万８千回、ジョブＣ７万２千回）、性能値（１ミリ秒）との積は２分となり、制限時間（２分）以下になる。このようにして、処理７０５は、ジョブＡ、ジョブＢ、ジョブＣのイベント間隔を、それぞれ５分、１２．５ミリ秒、１２．５ミリ秒に変更する。変更されたシミュレーションモデルを図８に示す。
処理７０５のように干渉度に従ってシミュレーションモデルのイベント間隔を変更する方法のほかに、すべてのジョブのイベント間隔を一律に増加させる方法も考えられる。例えば、図５のシミュレーションモデルで、性能格納部３０７に格納された性能値が１ミリ秒で、入力部３０１に入力された制限時間が２分の場合、図９に示すように、ジョブＡ、ジョブＢ、ジョブＣのイベント間隔を１５ミリ秒に変更すれば、イベント総数１２万回（ジョブＡ２万回、ジョブＢ４万回、ジョブＣ８万回）と性能値（１ミリ秒）の積は２分で、制限時間（２分）以下になる。
図１０は、図５のシミュレーションモデルを使ったシミュレーションの誤差と、図９のシミュレーションモデルを使ったシミュレーションの誤差をジョブＢの終了時間で比較した結果である。図１０に示すように、干渉度を用いてイベント間隔を変更した方が誤差が小さく、シミュレーションの精度が低下しない利点があることがわかる。
【００１４】
シミュレーション実行部３０３は、モデル作成部３０２が作成したシミュレーションモデルを使ってシミュレーションを実行する。シミュレーション実行部３０３は、ジョブ名１１０１、開始時刻１１０２、終了時刻１１０３、実行済み時間１１０４、状態１１０５、実行計算機１１０６、次回イベント時刻１１０７と、シミュレーション時刻１１０８、イベント時刻１１０９、イベントジョブ名１１１０からなるシミュレーションデータを保持する。シミュレーションデータを図１１に例示する。図１２は、シミュレーション実行部３０３の動作を示すフローチャートであり、以下では図１２のフローチャートに従って、シミュレーション実行部３０３の動作を説明する。
処理１２０１では、シミュレーションデータの初期値を設定する。ジョブ名１１０１には、シミュレーションモデルを参照して、シミュレーションモデルに設定されているすべてのジョブを設定する。各ジョブの開始時刻１１０２と終了時刻１１０３は空欄、実行済み時間１１０４は０分、状態１１０５は「未実行」に設定する。実行計算機１１０６には、シミュレーションモデルを参照して各ジョブの実行計算機８０２の値を設定する。次回イベント時刻１１０７には、シミュレーションモデルを参照して各ジョブの開始時刻８０１の値を設定する。シミュレーション時刻１１０８には、シミュレーションモデルを参照して、開始時刻８０１のうち最も早い時刻を設定する。イベント時刻１１０９とイベントジョブ名１１１０は空欄に設定する。
判断１２０２では、シミュレーションデータを参照して、すべてのジョブの状態１１０４が「終了」であるか否かを判断する。すべてのジョブの状態が「終了」である場合ＹＥＳへ、その他の場合はＮＯに分岐する。
処理１２０３では、シミュレーションデータの次回イベント時刻１１０６から、最も早い時刻を検索し、この時刻をイベント時刻１２０９に、この時刻を検索したジョブ名１１０１をイベントジョブ名１１１０に設定する。
処理１２０４では、開始時刻１１０２、実行済み時間１１０４と状態１１０５を変更する。図１３は処理１２０４の動作を示すフローチャートである。以下、図１３を参照して、処理１２０４の動作を説明する。
処理１３０１では、状態１１０５が「実行中」のすべてのジョブの実行済み時間１１０４に、イベント時刻１１０９とシミュレーション時刻１１０８の差で求められる時間を加算する。
判断１３０２では、シミュレーションデータの状態１１０５を参照し、イベントジョブ名１１１０とジョブの状態が「未実行」であるか否かの判断をする。
処理１３０３では、イベントジョブ名１１１０のジョブのシミュレーションデータの開始時刻１１０２を、イベント時刻１１０９の値に変更する。
判断１３０４では、シミュレーションデータから、イベントジョブ名１１１０のジョブの実行計算機１１０６を検索する。そして、シミュレーションデータを参照して、検索された実行計算機と同じ計算機で、状態が「実行中」のジョブがあるか否かを判断する。
処理１３０６では、イベントジョブ名１１１０のジョブの状態１１０５を「実行待ち」に、次回イベント時刻１１０７を空欄に変更する。
処理１３０６では、イベントジョブ名１１１０のジョブの状態１１０５を「実行中」に、次回イベント時刻１１０７をシミュレーションモデルのイベント間隔８０４の値とイベント時刻１１０９の値の和に変更する。
シミュレーション実行部３０３の動作フローチャート図１２の説明に戻る。処理１１０５では、終了時刻１１０３と状態１１０５とシミュレーション時刻１１０８を変更する。すべてのジョブに対して、シミュレーションデータの実行済み時間１１０４とシミュレーションモデルの所要時間８０３を比較し、実行済み時間が所要時間以上である場合に、そのジョブの状態１１０５を「終了」に、終了時刻１１０３をイベント時刻１１０９の値に設定する。また、シミュレーション時刻１１０８に、イベント時刻１１０９の値を設定する。
以上のシミュレーション実行部３０３の動作によって、各ジョブの開始時刻と終了時刻からなるシミュレーション結果が得られる。シミュレーション結果を図１４に例示する。
【００１５】
評価部３０４は、シミュレーション結果から、ジョブの実行計画の評価値を算出する。評価値の例として、すべてのジョブの実行に要した時間である総所要時間がある。総所要時間を算出するためには、シミュレーション結果から、最初に開始されたジョブの開始時刻と、最後に終了したジョブの終了時刻を検索し、この終了時刻と開始時刻の差を計算すればよい。総所要時間による評価値は、値が小さいほど、よい実行計画であることを示している。
出力部は、ディスプレイ装置によって実装され、評価部が算出した評価値をディスプレイに表示することで、利用者に対してジョブ実行計画の評価値を提示する。このとき、評価値とともに、図８のシミュレーションモデルをディスプレイに表示し、利用者に提示する方法も考えられる。
【図面の簡単な説明】
【図１】本発明にかかる評価システムが適用されるコンピュータシステムの例を示す図である。
【図２】ジョブの実行計画の例を示す図である。
【図３】本発明の評価システムの構成図である。
【図４】本発明のジョブモデルの例を示す図である。
【図５】シミュレーションモデルの例を示す図である。
【図６】シミュレーションのイベント数と実行時間の関係を示す図である。
【図７】本発明のモデル作成部の動作を示すフローチャートである。
【図８】シミュレーションモデルの例を示す図である。
【図９】シミュレーションモデルの例を示す図である。
【図１０】シミュレーションの誤差を示す図である。
【図１１】本発明のシミュレーション実行部が管理するシミュレーションデータを示す図である。
【図１２】本発明のシミュレーション実行部の動作を示すフローチャートである。
【図１３】本発明のシミュレーション実行部の動作を示すフローチャートである。
【図１４】本発明のシミュレーション実行部によるシミュレーション結果の例を示す図である。
【符号の説明】
３０１…入力部、３０２…モデル作成部、３０３…シミュレーション実行部、３０４…評価部、３０５…出力部、３０６…モデルデータベース、３０７…性能格納部。
【図１】
2005049922.tif 000003
【図２】
2005049922.tif 000004
【図３】
2005049922.tif 000005
【図４】
2005049922.tif 000006
【図５】
2005049922.tif 000007
【図６】
2005049922.tif 000008
【図７】
2005049922.tif 000009
【図８】
2005049922.tif 000010
【図９】
2005049922.tif 000011
【図１０】
2005049922.tif 000012
【図１１】
2005049922.tif 000013
【図１２】
2005049922.tif 000014
【図１３】
2005049922.tif 000015
【図１４】
2005049922.tif 000016