(57)【要約】【課題】  シミュレーションの負荷分散において、動的負荷分散では負荷が偏っているが閾値に達していない場合に有効ではなく、静的負荷分散では人間の勘を頼りにして負荷配分を行っていた。【解決手段】  シナリオに基づき、モデルを計算機ごとに暫定的に配分し配分情報を出力するモデル配分部と、モデル毎に定められている計算機間の通信量及びシミュレーション処理時間を格納する設計データ格納部と、配分情報に基づき計算機間の通信量を取得し、算出した計算機ごとのデータ通信量を通信量算出結果として出力する通信量計算部と、配分情報に基づきシミュレーション処理時間を取得し、算出した計算機ごとの処理時間を処理時間算出結果として出力する処理時間計算部と、通信量算出結果と処理時間算出結果に基づきモデル配分パターンを出力する負荷分散統合部とを備えるシミュレーション装置。【選択図】        図１
2009259156.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される複数の計算機を用いて分散処理を行うシミュレーション装置であって、
シミュレーションに用いるシナリオに基づき、モデルを計算機ごとに暫定的に配分し配分情報として出力するモデル配分部と、
モデル毎に定められている計算機間の通信量、及びモデルのシミュレーション処理時間を格納する設計データ格納部と、
上記モデル配分部より出力される配分情報に基づき、上記設計データ格納部に格納されている計算機間の通信量を取得し、計算機間の通信量に基づいて算出した計算機ごとのデータ通信量を通信量算出結果として出力する通信量計算部と、
上記モデル配分部より出力される配分情報に基づき、上記設計データ格納部に格納されているシミュレーション処理時間を取得し、上記シミュレーション処理時間に基づいて算出した計算機ごとの処理時間を処理時間算出結果として出力する処理時間計算部と、
上記通信量計算部より出力される通信量算出結果と、上記処理時間計算部より出力される処理時間算出結果に基づき、上記計算機の負荷を平均化したモデル配分パターンを出力する負荷分散統合部と、
を備えることを特徴とするシミュレーション装置。
【請求項２】
上記モデル配分パターンに基づきシミュレーションを実行し、シミュレーションの実行により得られる計算機間の通信量、及びモデルのシミュレーション処理時間を含む負荷ログを出力するシミュレーション実行部と、
上記シミュレーション実行部より出力される負荷ログを格納する負荷ログ格納部と、
上記負荷ログ格納部より取得した負荷ログのうち、計算機間の通信量に関する情報を抽出し、上記計算機間の通信量に基づいて算出した負荷量を通信量負荷算出結果として出力する通信量負荷計算部と、
上記負荷ログ格納部より取得した負荷ログのうち、モデルのシミュレーション処理時間に関する情報を抽出し、上記シミュレーション処理時間に基づいて算出した負荷量を処理時間負荷算出結果として出力する処理時間負荷計算部と、
を備え、
上記負荷分散統合部は、上記通信量計算部から出力される通信量算出結果と、上記処理時間計算部から出力される処理時間算出結果と、上記通信量負荷計算部から出力される通信量負荷算出結果と、上記処理時間負荷計算部から出力される処理時間負荷算出結果と、に基づき、上記計算機の負荷を平均化したモデル配分パターンを生成出力する
ことを特徴とする請求項１記載のシミュレーション装置。
【請求項３】
上記モデル配分パターンに基づきシミュレーションを実行し、シミュレーションの実行により得られる計算機間の通信量、及びモデルのシミュレーション処理時間を含む負荷ログを出力するシミュレーション実行部と、
上記シミュレーション実行部より出力される負荷ログを格納する負荷ログ格納部と、
上記負荷ログ格納部より取得した負荷ログのうち、計算機間の通信量に関する情報を抽出し、上記計算機間の通信量に基づいて算出した負荷量を通信量負荷算出結果として出力する通信量負荷計算部と、
上記負荷ログ格納部より取得した負荷ログのうち、モデルのシミュレーション処理時間に関する情報を抽出し、上記シミュレーション処理時間に基づいて算出した負荷量を処理時間負荷算出結果として出力する処理時間負荷計算部と、
上記通信量負荷計算部から出力される通信量負荷算出結果と、上記処理時間負荷計算部から出力される処理時間負荷算出結果に基づき、上記設計データ格納部に格納されているモデル毎に定められている計算機間の通信量、及びモデルのシミュレーション処理時間を更新する設計データ更新処理部と、
を備えることを特徴とする請求項１記載のシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の計算機を使用した分散シミュレーションにおいて、シミュレーションの負荷分散を行うシミュレーション装置に関するものである。
【背景技術】
【０００２】
分散シミュレーションにおける負荷分散方法としては、シミュレーション実行時の計算機の計算負荷や通信量をモニタリングし、計算負荷が高くなったり、閾値を超える通信が行われるようになると、負荷の高い計算機から負荷の低い計算機に処理を移行したり、負荷の多い計算機間の処理を統合して処理するという、動的負荷分散が主流である（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００３−３１６７５４号公報（第４−５頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この動的負荷分散については、負荷が閾値に達した場合に行われるため、負荷が偏っているが閾値に達していないような場合に有効に働かなかった。また、実行してみるまで計算機ごとの負荷の状況がどのようになるかを把握することが困難であった。
【０００５】
一方、シミュレーション実行前に負荷分散を行う静的負荷分散に関しては、動的負荷分散のような閾値問題は発生しないものの、従来は、人間の経験と勘を頼りにして負荷配分を行っており、負荷配分を自動的に行うシミュレーション装置は、今のところ実現化していない。
【０００６】
この発明は係る課題を解決するためになされたものであり、シミュレーションの実行シナリオを基に、モデルの通信量、及びシミュレーション処理時間等の設計情報を用いて、シミュレーション実行前にモデルの配分を決定し、負荷分散を行うことを目的とする。
【０００７】
さらに、シミュレーションを実行するたびに蓄積される負荷情報を解析し、負荷配分に用いるモデルの通信量、シミュレーション処理時間を更新してモデルを配分することにより、より適切な負荷配分を可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るシミュレーション装置は、
ネットワークを介して接続される複数の計算機を用いて分散処理を行うシミュレーション装置であって、
シミュレーションに用いるシナリオに基づき、モデルを計算機ごとに暫定的に配分し配分情報として出力するモデル配分部と、
モデル毎に定められている計算機間の通信量、及びモデルのシミュレーション処理時間を格納する設計データ格納部と、
上記モデル配分部より出力される配分情報に基づき、上記設計データ格納部に格納されている計算機間の通信量を取得し、計算機間の通信量に基づいて算出した計算機ごとのデータ通信量を通信量算出結果として出力する通信量計算部と、
上記モデル配分部より出力される配分情報に基づき、上記設計データ格納部に格納されているシミュレーション処理時間を取得し、上記シミュレーション処理時間に基づいて算出した計算機ごとの処理時間を処理時間算出結果として出力する処理時間計算部と、
上記通信量計算部より出力される通信量算出結果と、上記処理時間計算部より出力される処理時間算出結果に基づき、上記計算機の負荷を平均化したモデル配分パターンを出力する負荷分散統合部と、
を備えることを特徴とするものである。
【発明の効果】
【０００９】
本発明によれば、シミュレーションの実行シナリオに基づき、モデルの通信量、及びシミュレーション処理時間を用いて、シミュレーション実行前に、モデルの実行単位への配分を決定することが可能となる。また、計算機間の通信量の削減、各計算機におけるモデル処理時間の平均化を行うことにより、分散シミュレーションにおける負荷分散の最適化を実現することができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
以下、図を用いてこの発明に係る実施の形態１について説明する。図１は、ネットワークを介して接続される複数の計算機を用いて分散処理を行うシミュレーション装置のうち、実施の形態１によるシミュレーション装置の構成を示している。
【００１１】
実施の形態１におけるシミュレーション装置は、実行シナリオ格納部１と、モデル配分部２と、設計データ格納部３と、通信量計算部４と、処理時間計算部５と、負荷分散統合部６と、シミュレーション実行部７とで構成される。
【００１２】
モデル配分部２は、シミュレーションの実行シナリオが格納されている実行シナリオ格納部１から、シミュレーションの実行内容が記述されたシナリオを取得する。モデル配分部２は、実行シナリオ格納部１より取得したシナリオに登場するモデルの種類により、どのモデルをどの計算機へ配分するのか暫定的に配分し、配分情報として出力する。
【００１３】
設計データ格納部３は、モデル毎に定められているモデル単位の計算機間の通信量、モデルのシミュレーション処理時間を含む設計情報を格納し、他の処理部からの検索要求に応じて設計情報を検索し、検索の結果得られた情報を検索要求元に通知する。
【００１４】
通信量計算部４は、モデル配分部２にて出力される配分情報に基づいて、設計データ格納部３へ、モデル単位の通信量を取得するため、検索要求を出力する。設計データ格納部３は、通信量計算部４より出力される検索要求を受けて、モデル単位の通信量に関する設計情報を検索し、検索結果を通信量計算部４へ出力する。
【００１５】
通信量計算部４は、設計データ格納部３より取得したモデル単位の通信量に基づき、取得した通信量に基づくシミュレーション実行単位毎の通信量の負荷を計算し、各計算機でのデータ通信量を算出する。そして通信量計算部４は、算出したデータ通信量を通信量算出結果として出力する。
【００１６】
また処理時間計算部５は、モデル配分部２にて出力される配分情報に基づいて、設計データ格納部３へ、各モデルのシミュレーション処理時間を取得するため、検索要求を出力する。設計データ格納部３は、処理時間計算部５より出力される検索要求を受けて、各モデルのシミュレーション処理時間に関する設計情報を検索し、検索結果を処理時間計算部５へ出力する。
【００１７】
処理時間計算部５は、設計データ格納部３より取得した各モデルのシミュレーション処理時間に基づき、シミュレーション実行単位毎の処理時間を計算し、各計算機での処理時間を算出する。そして処理時間計算部５は、算出した処理時間を処理時間算出結果として出力する。
【００１８】
負荷分散統合部６は、通信量計算部４より出力された通信量算出結果、及び処理時間計算部５より算出された処理時間算出結果に基づき、分散シミュレーションに使用する計算機台数を考慮して、シミュレーションを実行する計算機間での通信量、モデル処理時間の負荷が平均化するように最適化されたモデル配分の組み合わせを計算する。負荷分散統合部６は、計算結果に基づき、分散シミュレーションを実行する計算機に対して、最適化されたモデルの配分パターンを生成する。
【００１９】
シミュレーション実行部７は、負荷分散統合部６から出力されるモデル配分パターンに基づき、計算機ごとに配分されたモデルを用いて、シミュレーションを実行する。
【００２０】
これにより、シミュレーションの実行シナリオに基づき、モデルの通信量、及びシミュレーション処理時間を用いて、シミュレーション実行前に、モデルの実行単位への配分を決定することが可能となる。また、計算機間の通信量の削減、各計算機におけるモデル処理時間の平均化を行うことにより、分散シミュレーションにおける負荷分散の最適化を実現することができる。
【００２１】
実施の形態２．
以下、図を用いてこの発明に係る実施の形態２について説明する。図２は、実施の形態２によるシミュレーション装置の構成を示している。実施の形態２は、上記実施の形態１に対して、シミュレーション実施結果を負荷分散統合部６へフィードバックする処理部を付加する形で構成する。
【００２２】
シミュレーション実行部７は、シミュレーションを実行した結果、得られる処理の負荷情報が記載されている負荷ログを出力する。負荷ログには、例えば、計算機間の通信量に関する情報や、モデルのシミュレーション処理時間に関する情報が含まれる。負荷ログ格納部９は、シミュレーション実行部７より出力される負荷ログを管理、格納する。
【００２３】
通信量負荷計算部１０は、負荷ログ格納部９へ負荷ログを取得するための検索要求を出力する。負荷ログ格納部９は、通信量負荷計算部１０より出力される検索要求を受けて、負荷ログを検索し、検索結果を通信量負荷計算部１０へ出力する。
【００２４】
通信量負荷計算部１０は、負荷ログ格納部９より取得した負荷ログより、計算機間の通信量に関する情報を抽出する。また通信量負荷計算部１０は、抽出した計算機間の通信量に関する情報より、実行単位間の通信データ量を解析し、通信量に基づく負荷量を算出する。そして通信量負荷計算部１０は、算出した負荷量を通信量負荷算出結果として出力する。
【００２５】
処理時間負荷計算部１１は、負荷ログ格納部９へ負荷ログを取得するための検索要求を出力する。負荷ログ格納部９は、処理時間負荷計算部１１より出力される検索要求を受けて、負荷ログを検索し、検索結果を処理時間負荷計算部１１へ出力する。
【００２６】
処理時間負荷計算部１１は、負荷ログ格納部９より取得した負荷ログより、モデルのシミュレーション処理時間に関する情報を抽出する。また処理時間負荷計算部１１は、抽出したモデルのシミュレーション処理時間に関する情報より、各モデルの処理時間を解析し、モデル処理時間に基づく負荷量を算出する。そして処理時間負荷計算部１１は、算出した負荷量を処理時間負荷算出結果として出力する。
【００２７】
負荷分散統合部６は、シミュレーションの実施回数などに基づき、設計情報に基づく通信量算出結果と処理時間算出結果、及びシミュレーション実施結果に基づく通信量負荷算出結果と処理時間負荷算出結果に対して重み付けを行う。例えば、シミュレーション実施回数が増えるごとに、通信量負荷算出結果と処理時間負荷算出結果とに対する重みを増やすなどの処理を行う。
【００２８】
そして負荷分散統合部６は、使用する計算機台数を考慮して、実行計算機上での通信量、モデル処理時間の負荷が平均化するように最適化されたモデル配分の組み合わせを計算する。負荷分散統合部６は、計算結果に基づき、分散シミュレーションを実行する計算機に対して、最適化されたモデルの配分パターンを生成する。シミュレーション実行部７は、負荷分散統合部６から出力されるモデル配分パターンに基づき、計算機ごとに配分されたモデルを用いて、シミュレーションを実行する。
【００２９】
この実施の形態を用いる一例として、例えば、モンテカルロシミュレーションのような大規模、高負荷のシミュレーションがある。つまり、モンテカルロシミュレーションを実施する前に、作成したシナリオが所望の動作をするシナリオとなっているかを確認するための簡易確認シミュレーションを実行し、シミュレーションを実行した結果、シミュレーション実行部より出力される簡易確認シミュレーションの負荷ログを解析し、モデルの配分パターンを生成し、モンテカルロシミュレーションを実施する。
【００３０】
これにより、シミュレーションの実施結果を踏まえて、計算機間の通信量の削減、各計算機におけるモデル処理時間の平均化を行うことができ、分散シミュレーションにおける負荷分散の最適化効率を高め、より高精度な負荷分散を行うことが可能となる。
【００３１】
実施の形態３．
以下、図を用いてこの発明に係る実施の形態３について説明する。図３は、実施の形態３によるシミュレーション装置の構成を示している。実施の形態３は、上記実施の形態１に対して、シミュレーション実施結果を設計データ格納部３へフィードバックする処理部を付加する形で構成する。
【００３２】
実施の形態２と同様、負荷ログ格納部９は、シミュレーションを実行した結果、得られる処理の負荷情報が記載されている負荷ログを格納し、接続された処理部からの検索要求に基づき検索を実施し、検索の結果得られた負荷ログを検索要求元に通知する処理部である。
【００３３】
通信量負荷計算部１０は、負荷ログ格納部９から負荷ログを取得する。また通信量負荷計算部１０は、取得した負荷ログから計算機間の通信量に関する情報を抽出し、実行単位間の通信データ量を解析し、通信量に基づく負荷量を算出する。そして通信量負荷計算部１０は、算出した負荷量を通信量負荷算出結果として出力する。
【００３４】
同様に、処理時間負荷計算部１１は、負荷ログ格納部９から負荷ログを取得する。処理時間負荷計算部１１は、取得した負荷ログからモデルのシミュレーション処理時間に関する情報を抽出し、各モデルのシミュレーション処理時間を解析し、モデル処理時間に基づく負荷量を算出する。そして処理時間負荷計算部１１は、算出した負荷量を処理時間負荷算出結果として出力する。
【００３５】
設計データ更新処理部１２は、通信量負荷計算部１０、及び処理時間負荷計算部１１の各算出結果に基づき、設計データ格納部３に格納されている通信量、モデル処理時間に関する各データを更新する。
【００３６】
ここで、設計データ更新処理部１２は、通信量負荷計算部１０から出力される通信量負荷算出結果、処理時間負荷計算部１１から出力される処理時間負荷算出結果、設計データ格納部３に格納されているモデル毎に定められている計算機間の通信量、及びモデルのシミュレーション処理時間に対して、シミュレーションの実施回数などにより重み付けを行い、更新するデータを算出する。
【００３７】
例えば、シミュレーション実施回数が増えるごとに、設計データ格納部３に格納されている通信量及びでモデル処理時間と比較して、通信量負荷算出結果と処理時間負荷算出結果とに対する重みを増やすなどの処理を行う。
【００３８】
これにより、シミュレーションの実行毎に蓄積される負荷ログを解析し、負荷配分に用いるモデルの通信量、モデルのシミュレーション処理時間を更新することにより、シミュレーションの実行シナリオに関係なく、モデルに関する通信量と処理時間に関する設計情報を更新することができる。よって、計算機間の通信量の削減、各計算機におけるモデル処理時間の精度が向上し、分散シミュレーションに対してより適切な負荷配分が可能となる。
【図面の簡単な説明】
【００３９】
【図１】この発明の実施の形態１によるシミュレーション装置の構成を示している。
【図２】この発明の実施の形態２によるシミュレーション装置の構成を示している。
【図３】この発明の実施の形態３によるシミュレーション装置の構成を示している。
【符号の説明】
【００４０】
１．実行シナリオ格納部
２．モデル配分部
３．設計データ格納部
４．通信量計算部
５．処理時間計算部
６．負荷分散統合部
７．シミュレーション実行部
９．負荷ログ格納部
１０．通信量負荷計算部
１１．処理時間負荷計算部
１２．設計データ更新処理部
【図１】
2009259156.tif 000003
【図２】
2009259156.tif 000004
【図３】
2009259156.tif 000005