(57)【要約】【課題】  分散処理に要する処理時間とデータ通信量を考慮して分散シミュレーションシステム全体の処理実行時間を短縮することができる分散シミュレーションシステムを提供する。【解決手段】  各シミュレータ１０１ａ〜１０１ｄによるシミュレーション処理に要する計算量を計測する計算量監視部１０６ａ，１０６ｂと、シミュレーション処理で各シミュレータ間でやり取りされるデータ通信量を計測する通信量監視部１０７ａ，１０７ｂと、各シミュレータによるシミュレーション処理に要する計算量及び各シミュレータ間でやり取りされるデータ通信量に基づいて、システム内におけるシミュレーションの処理に要する計算時間及びシミュレータ間のデータ通信時間が短縮するようにシステム構成を変更するシミュレータ再構成部１０５ａ，１０５ｂとを備える。【選択図】        図１
2006079341.tif 000002
【特許請求の範囲】
【請求項１】
複数のシミュレータがデータ交換しながら分散処理にてシミュレーションを実行する分散シミュレーションシステムにおいて、
前記各シミュレータによるシミュレーション処理に要する計算量を計測する計算量監視部と、
シミュレーション処理で前記各シミュレータ間でやり取りされるデータ通信量を計測する通信量監視部と、
前記各シミュレータによるシミュレーション処理に要する計算量及び前記各シミュレータ間でやり取りされるデータ通信量に基づいて、システム内におけるシミュレーションの処理に要する計算時間及び前記シミュレータ間のデータ通信時間が短縮するようにシステム構成を変更する再構成部と
を備えたことを特徴とする分散シミュレーションシステム。
【請求項２】
シミュレータ間のデータ通信を媒体する通信媒体におけるデータ通信時間を規定する情報を記述した接続構成情報を備え、
再構成部は、前記接続構成情報に基づいて求められる前記シミュレータ間のデータ通信時間を変更後のシステム構成を決定する基準として用いることを特徴とする請求項１記載の分散シミュレーションシステム。
【請求項３】
複数のコンピュータ上でシミュレータ、計算量監視部、通信量監視部及び再構成部を構築し、
前記複数のコンピュータにおける前記計算量監視部間及び前記通信量監視部間で互いに計測結果をやり取りし、
前記再構成部は、前記計算量監視部及び前記通信量監視部から取得した計測結果を変更後のシステム構成を決定する基準として用い、自己が構築された前記コンピュータごとにシステムの構成を変更することを特徴とする請求項１記載の分散シミュレーションシステム。
【請求項４】
複数のコンピュータ上でシミュレータ、計算量監視部、通信量監視部及び再構成部を構築し、
前記計算量監視部は、シミュレーション開始前に自己が構築された前記コンピュータの性能を規定するデータを計測し、この計測結果に基づいて前記シミュレータによるシミュレーション処理に要する時間を算出することを特徴とする請求項１記載の分散シミュレーションシステム。
【請求項５】
計算量監視部及び通信監視部は、自己が構築されたコンピュータ上で使用可能なメモリサイズ及びスワップサイズを計測し、
再構成部は、前記計算量監視部及び前記通信量監視部から取得した前記計測結果を変更後のシステム構成を決定する基準として用いることを特徴とする請求項１記載の分散シミュレーションシステム。
【請求項６】
再構成部は、システム構成を変更するにあたり、各シミュレータをコンピュータ上に構築させるためのプログラムの情報量と前記各シミュレータの状態を規定する情報を保存したデータの情報量に関する情報を管理し、システムの構成を変更するにあたり、前記情報量に関する情報に基づいて前記シミュレータの構成変更に要する時間を見積もり、この見積もり結果をシステムの構成を変更すべきか否かの判定基準とすることを特徴とする請求項１記載の分散シミュレーションシステム。
【請求項７】
接続構成情報は、シミュレータによる処理量及び／又はデータ通信量に応じた利用料金に関する情報が記述されており、
再構成部は、システムの構成を変更すべきか否かを判定するにあたり、前記接続構成情報に記述された利用料金に関する情報を判定基準とすることを特徴とする請求項２記載の分散シミュレーションシステム。
【請求項８】
複数のシミュレータがデータ交換しながら分散処理にてシミュレーションを実行する分散シミュレーションシステムとしてコンピュータを機能させるプログラムにおいて、
前記各シミュレータによるシミュレーション処理に要する計算量を計測する計算量監視部、
シミュレーション処理で前記各シミュレータ間でやり取りされるデータ通信量を計測する通信量監視部、
前記各シミュレータによるシミュレーション処理に要する計算量及び前記各シミュレータ間でやり取りされるデータ通信量に基づいて、システム内におけるシミュレーションの処理に要する計算時間及び前記シミュレータ間のデータ通信時間が短縮するようにシステム構成を変更する再構成部
としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のシミュレータがデータ交換しながら統合してシミュレーションを実行する分散シミュレーションシステム及びこれをコンピュータに実現させるプログラムに関するものである。
【背景技術】
【０００２】
従来の分散シミュレーションシステムでは、例えば特許文献１に示される分散型気象情報処理システムのように、システム内に分散する複数のオブジェクトの演算処理による負荷をモニタし、システム内の各計算機間の負荷が不均等になると、負荷が均等になるようにシステムを再構成する。
【０００３】
【特許文献１】特開２００１−２０８８６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来では、前述したようにシステム内の各計算機で演算処理に要する負荷に偏りが生じるとシステムの再構成を実施して効率化が図るが、システム内でオブジェクト間のデータ通信量に偏りがあっても全体の処理が効率化されないという課題があった。
【０００５】
例えば、生産システムの統合シミュレーションを実行する分散シミュレーションシステムの場合、統合するシミュレータを構成する計算機間で頻繁に大量のデータ通信が行われ、多くの通信時間を要する。このため、単純に計算量だけで再構成を決定するだけでは、全体的な処理時間を十分に効率化できなかった。
【０００６】
この発明は、上記のような課題を解決するためになされたもので、分散処理に要する処理時間とデータ通信量を考慮して分散シミュレーションシステム全体の処理実行時間を短縮することができる分散シミュレーションシステム及びこれをコンピュータに実現させるプログラムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る分散シミュレーションシステムは、複数のシミュレータがデータ交換しながら分散処理にてシミュレーションを実行する分散シミュレーションシステムにおいて、各シミュレータによるシミュレーション処理に要する計算量を計測する計算量監視部と、シミュレーション処理で各シミュレータ間でやり取りされるデータ通信量を計測する通信量監視部と、各シミュレータによるシミュレーション処理に要する計算量及び各シミュレータ間でやり取りされるデータ通信量に基づいて、システム内におけるシミュレーションの処理に要する計算時間及び前記シミュレータ間のデータ通信時間が短縮するようにシステム構成を変更する再構成部とを備えるものである。
【発明の効果】
【０００８】
この発明によれば、複数のシミュレータがデータ交換しながら分散処理にてシミュレーションを実行する分散シミュレーションシステムにおいて、各シミュレータによるシミュレーション処理に要する計算量を計測する計算量監視部と、シミュレーション処理で各シミュレータ間でやり取りされるデータ通信量を計測する通信量監視部と、各シミュレータによるシミュレーション処理に要する計算量及び各シミュレータ間でやり取りされるデータ通信量に基づいて、システム内におけるシミュレーションの処理に要する計算時間及び前記シミュレータ間のデータ通信時間が短縮するようにシステム構成を変更する再構成部とを備えるので、分散処理に要する処理時間とデータ通信量を考慮して分散シミュレーションシステム全体の処理実行時間を短縮することができるという効果がある。特にシミュレータ間のデータ通信量が多い生産システム分野における統合シミュレーションに利用することで、データ通信時間の偏りを考慮した再構成を実施することができ、シミュレーションの実行時間を確実に短縮できる。また、通信量が大きいほど通信エラーの発生率も高くなるので、通信量が小さくなるように再構成することにより、通信エラーによるシミュレーション実行効率の低下も抑えることができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１による分散シミュレーションシステムの構成を示すブロック図であり、計算機１００ａ，１００ｂ上に構築したシミュレーションシステムでそれぞれ実行されるシミュレーションを連携・統合させて１つの統合されたシミュレーションを実行する。計算機（コンピュータ）１００ａ，１００ｂは、例えばＬＡＮ（Local Area Network）１０８で接続されており、シミュレーションを実行するシミュレータ１０１ａ〜１０１ｄ、各シミュレータ１０１ａ，１０１ｂ，１０１ｃ，１０１ｄによるシミュレーションの分散実行を管理する分散シミュレータ管理部１０２ａ，１０２ｂを有して構成される。
【００１０】
分散シミュレータ管理部１０２ａ（１０２ｂ）は、同期管理部１０３ａ（１０３ｂ）、通信管理部１０４ａ（１０４ｂ）及びシミュレータ再構成部１０５ａ（１０５ｂ）から構成される。同期管理部１０３ａ（１０３ｂ）は、シミュレータ１０１ａ，１０１ｂ（１０１ｃ，１０１ｄ）により実行されているシミュレーションにおける論理的な時間の同期を取るための管理を行う。通信管理部１０４ａ（１０４ｂ）は、シミュレーション実行中にシミュレータ１０１ａ，１０１ｂ，１０１ｃ，１０１ｄ間で行われるデータ送受信を管理する。
【００１１】
シミュレータ再構成部（再構成部）１０５ａ（１０５ｂ）は、シミュレータ１０１ａ，１０１ｂ，１０１ｃ，１０１ｄの再構成を行う。その構成としては、計算量監視部１０６ａ（１０６ｂ）及び通信量監視部１０７ａ（１０７ｂ）を有している。計算量監視部１０６ａ（１０６ｂ）は、シミュレーションを実行しているシミュレータ１０１ａ，１０１ｂ（１０１ｃ，１０１ｄ）の処理に要する計算量を監視する。また、通信量監視部１０７ａ（１０７ｂ）は、シミュレータ１０１ａ，１０１ｂ（１０１ｃ，１０１ｄ）が送受信するデータの量を監視する。
【００１２】
シミュレータ再構成部１０５ａ（１０５ｂ）では、計算量監視部１０６ａ（１０６ｂ）及び通信量監視部１０７ａ（１０７ｂ）により監視された計算量と通信量を入力して、各計算機１００ａ，１００ｂ上での計算量と通信量の偏りを定期的に確認し、偏りがある場合に統合シミュレーション全体のシミュレータ１０１ａ，１０１ｂ，１０１ｃ，１０１ｄの構成を変更する。
【００１３】
また、上述した分散シミュレータ管理部１０５ａ，１０５ｂを構成する、同期管理部１０３ａ，１０３ｂ、通信管理部１０４ａ，１０４ｂ、シミュレータ再構成部１０５ａ，１０５ｂ及びこれを構成する計算量監視部１０６ａ，１０６ｂ、通信量監視部１０７ａ，１０７ｂは、例えば汎用コンピュータ等を用いて本発明に従う分散処理プログラムを実行させることで具現化できる。
【００１４】
もう少し詳細に説明すると、本発明に従う分散処理プログラムを、コンピュータに読み込ませて、その動作を制御することにより、コンピュータ上に図１に示す同期管理部１０３ａ，１０３ｂ、通信管理部１０４ａ，１０４ｂ、シミュレータ再構成部１０５ａ，１０５ｂ及びこれを構成する計算量監視部１０６ａ，１０６ｂ、通信量監視部１０７ａ，１０７ｂを実現することができる。
【００１５】
なお、以下の説明において、本発明の分散シミュレーションシステムを具現化するコンピュータ自体の構成及びその基本的な機能については、当業者が当該技術分野の技術常識に基づいて容易に認識できるものであり、本発明の本質に直接関わるものでないので詳細な記載を省略する。
【００１６】
次に動作について説明する。
図２は、実施の形態による分散シミュレーションシステムの動作を示すフローチャートであり、この図に沿ってシステム内でのシミュレータ再構成処理を詳細に説明する。
先ず、計算機１００ａ，１００ｂは、各シミュレータ１０１ａ〜１０１ｄによって実行すべきシミュレーションを１周期分実行する（ステップＳＴ１）。例えば、計算機１００ａ上のシミュレータ１０１ａが、同期管理部１０３ａから１周期のシミュレーション実行を許可されると、シミュレーション処理を１周期分だけ実行して自己の論理時間を１周期分だけ進め、シミュレーション処理の完了を同期管理部１０３ａに通知する。
【００１７】
このとき、シミュレータ１０１ａは、シミュレーション処理中に他のシミュレータ１０１ｂ，１０１ｃ，１０１ｄにデータを送信したり、他のシミュレータ１０１ｂ，１０１ｃ，１０１ｄからデータを受信したりして通信することができる。なお、シミュレータ１０１ａがデータ通信を行う場合は、全て通信管理部１０４ａを介して実行される。
【００１８】
次に、計算機１００ａ，１００ｂのシミュレータ再構成部１０５ａ，１０５ｂ内の計算量監視部１０６ａ，１０６ｂ及び通信量監視部１０７ａ，１０７ｂが、ステップＳＴ１で実行された１周期分のシミュレーションで各シミュレータ１０１ａ〜１０１ｄが処理に要した計算量及び各シミュレータ１０１ａ，１０１ｂ，１０１ｃ，１０１ｄ間で送受信されたデータ通信量をそれぞれ計測する（ステップＳＴ２）。
【００１９】
例えば、ステップＳＴ１におけるシミュレーション処理が完了すると、計算量監視部１０６ａは、シミュレータ１０１ａの１周期分のシミュレーション処理に要した計算量を計測し、計算機１００ａでその計算量を処理するのに要する時間を計算して計算機１００ａ内の不図示のメモリに保持する。また、通信量監視部１０７ａでは、シミュレータ１０１ａの１周期分のシミュレーション処理中にシミュレータ１０１ａが送受信したデータ量を計測して、そのデータ量を通信するのに要する時間を計算して計算機１００ａ内の不図示のメモリに保持する。
【００２０】
続いて、シミュレータ再構成部１０５ａ，１０５ｂは、前回再構成の判定を行ってからの経過時間と予め設定された経過時間の閾値とを比較し、再構成の判定処理を実行すべきか否かを判断する（ステップＳＴ３）。このとき、前記閾値を超える時間が経過していればステップＳＴ４の処理に移行し、経過していなければステップＳＴ１の処理に戻って上述した処理を繰り返す。
【００２１】
具体例を挙げて説明すると、シミュレータ再構成部１０５ａ，１０５ｂは、計算機１００ａ，１００ｂ内に設けたタイマ（不図示）を使って、ステップＳＴ４における再構成の判定処理を行うたびに当該処理を行ってからの経過時間を計測する。そして、ステップＳＴ２の処理に従って、計算量監視部１０６ａ，１０６ｂ及び通信量監視部１０７ａ，１０７ｂが、ステップＳＴ１で実行された１周期分のシミュレーション処理に要した計算量及び送受信されたデータ通信量をそれぞれ計測すると、シミュレータ再構成部１０５ａ，１０５ｂは、前記タイマの時間と予め設定された経過時間の閾値とを比較し、当該比較結果に基づいて再構成の判定処理を実行すべきか否かを判断する。
【００２２】
ステップＳＴ４において、シミュレータ再構成部１０５ａ，１０５ｂは、再構成を実施するか否かの判定を行う。この判定には、例えば前回判定から今回の判定処理までにステップＳＴ２で計算量監視部及び通信量監視部が計測した結果を基に算出し、前記メモリに保持されているシミュレーション処理に要した時間及びデータ通信に要した時間を使用する。なお、判定基準となる時間情報は、前回の再構成の判定後にステップＳＴ２の処理で計測してきた計測情報に基づいて算出してもよいが、ステップＳＴ１におけるシミュレーション開始後にステップＳＴ２で計測してきた全ての情報に基づいて求めてもよい。
【００２３】
また、この他、計算機１００ａ，１００ｂ上でシミュレーション処理に要した時間とデータ通信に要した時間との総和をそれぞれ求め、この値をシミュレーションに要した総時間として再構成の判定に用いてもよい。この場合、シミュレータ再構成部１０５ａ，１０５ｂは、前述のようにして求めた各計算機１００ａ，１００ｂでのシミュレーションに要した総時間をそれぞれ比較し、計算機１００ａと計算機１００ｂとの間に予め割り当てておいたシミュレーションに要する総時間の比率を判断基準として当該総時間の比率から外れているか否か、即ち予め設定しておいた以上の負荷の偏りが認められるか否かを判定する。
【００２４】
これにより、予め設定しておいた以上の負荷の偏りが認められる場合、ステップＳＴ５の再構成処理に移行し、予め設定しておいた以上の負荷の偏りが認められない場合、ステップＳＴ１の処理に戻って上述した処理を繰り返す。各計算機１００ａ，１００ｂでのシミュレーションに要した総時間に偏りが認められる場合としては、いずれかの計算機におけるシミュレータの処理の負荷が大きいか、あるいは、データ通信量が多すぎる場合などが考えられる。
【００２５】
ステップＳＴ５において、シミュレータ再構成部１０５ａ，１０５ｂは、ステップＳＴ２で計測した計算量及びデータ通信量に基づいて計算機１００ａ，１００ｂで実行される統合シミュレーション全体としての実行時間が短縮されるように新しい構成を決定する。例えば、統合シミュレーション全体としての実行時間を短縮するため、ステップＳＴ４で求めた各計算機１００ａ，１００ｂでシミュレーションに要する総時間の偏りを減らす新しい構成を求める。
【００２６】
なお、本発明における再構成としては、分散シミュレーションシステムで分散処理されるオブジェクトのシミュレータに対する割り当てを変更する場合の他、シミュレータを構築する計算機の変更も含まれる。
【００２７】
新しい構成を求める場合、シミュレータ再構成部１０５ａ，１０５ｂは、これまでに収集した計算量と送受信したデータの通信量を使用する。これらの情報に基づいて、計算機１００ａ，１００ｂへのシミュレータ１０１ａ，１０１ｂ，１０１ｃ，１０１ｄの割り当てパターンに対して各計算機１００ａ，１００ｂでのシミュレーションに要する時間を計算し、最もシミュレーションに要する時間の偏りが小さいものを新しい構成とする。
【００２８】
前述した例では、新しい構成として最もシミュレーションに要する時間の偏りが小さくなるシステム構成を選択する場合を示したが、各計算機１００ａ，１００ｂでのシミュレーションに要する時間の最大値が最小になる構成を選択してもよい。つまり、シミュレーション処理に要した計算量及び送受信されたデータ通信量を考慮する指標であれば、他の指標を用いて構成を決定してもよい。
【００２９】
上述のようにして再構成後のシステム構成を決定すると、シミュレータ再構成部１０５ａ，１０５ｂは、実際にシステムの再構成を実行するために統合シミュレーションの実行を一時停止させる（ステップＳＴ６）。このとき、各計算機のシミュレータは、シミュレーションにおける自己の現在状態を規定するデータをシミュレータ再構成部１０５ａ，１０５ｂに出力するか、不図示のメモリに一時記憶する。これらのデータを用いてシミュレータ再構成部１０５ａ，１０５ｂがシステムの再構成を実施することになる。
【００３０】
次に、シミュレータ再構成部１０５ａ，１０５ｂは、ステップＳＴ５で決定したシステム構成になるように再構成を実施する（ステップＳＴ７）。このとき、例えばシミュレータの再構成を行うことによりシミュレータを構築する計算機が変わる場合、シミュレータ再構成部１０５ａ，１０５ｂが、当該シミュレータの実行モジュール（プログラム）と現在の状態とを保存したデータを再構成後の計算機へ送信し、再構成後の計算機上で保存された状態から実行を再開するようにしてもよい。
【００３１】
また、シミュレータの実行モジュールだけは予め再構成後の計算機上にも用意しておき（例えば、全ての計算機に用意しておくか、計算機の性能上再構成後にシミュレータを構築すべき計算機として選択されることが予想される計算機に予め用意しておく）、シミュレータ再構成部１０５ａ，１０５ｂが、再構成を行うときに現在の状態を保存したデータのみを再構成後の計算機に送信し、当該計算機がその状態からシミュレーションを再開するように構成してもよい。
【００３２】
このような構成および流れで統合シミュレーションシステムの再構成を行うことにより、シミュレータの処理の計算量の偏りだけでなく、シミュレータ間の通信量の偏りも考慮したシステム再構成を実行することができ、統合シミュレーション全体としての実行時間を短縮することができる。
【００３３】
特に生産システム分野における統合シミュレーションでは、シミュレータ間のデータ通信量が多く、前述したようなデータ通信時間の偏りを考慮した再構成により、シミュレーションの実行時間をより確実に短縮できる。また、通信量が大きいほど通信エラーの発生率も高くなるので、通信量が小さくなるように考慮した再構成により、エラー発生によるシミュレーション実行効率の低下も削減できる。
【００３４】
上述のようにしてシステムの再構成が完了すると、シミュレータ再構成部１０５ａ，１０５ｂは、再構成後のシステムにおける計算機間やシミュレータ間の接続を規定する情報を分散シミュレータ管理部１０２ａ，１０２ｂに出力する。これにより、分散シミュレータ管理部１０２ａ，１０２ｂの管理の下、新しい構成で統合シミュレーションを再開する（ステップＳＴ８）。
【００３５】
つまり、同期管理部１０３ａ（１０３ｂ）が、再構成されたシミュレータ１０１ａ，１０１ｂ（１０１ｃ，１０１ｄ）により実行されているシミュレーションにおける論理的な時間の同期を取るための管理を行い、通信管理部１０４ａ（１０４ｂ）が、シミュレーション実行中にシミュレータ１０１ａ，１０１ｂ，１０１ｃ，１０１ｄ間で行われるデータ送受信を管理する。
【００３６】
このように再構成が完了して統合シミュレーションを再開すると、本実施の形態によるシステムは、ステップＳＴ１の処理に戻り、上述した処理を繰り返すことになる。
【００３７】
以上のように、この実施の形態１によれば、各シミュレータ１０１ａ〜１０１ｄによるシミュレーション処理に要する計算量を計測する計算量監視部１０６ａ，１０６ｂと、シミュレーション処理で各シミュレータ間でやり取りされるデータ通信量を計測する通信量監視部１０７ａ，１０７ｂと、各シミュレータによるシミュレーション処理に要する計算量及び各シミュレータ間でやり取りされるデータ通信量に基づいて、システム内におけるシミュレーションの処理に要する計算時間及びシミュレータ間のデータ通信時間が短縮するようにシステム構成を変更するシミュレータ再構成部１０５ａ，１０５ｂとを備えるので、分散処理に要する処理時間とデータ通信量を考慮して分散シミュレーションシステム全体の処理実行時間を短縮することができる。
【００３８】
なお、上記実施の形態で説明した再構成を実施するか否かの判定で、実際に構成を変更するために要する時間（例えば、シミュレータ自体を移動するための通信時間（シミュレータを構築するための実行モジュールプログラムの転送時間）、シミュレータの状態を保存したデータの通信時間、シミュレータの一時停止や再開に要する時間等）をシミュレータ自体のプログラムサイズや状態を規定する情報を保存したデータのサイズから見積もって判定基準に用いてもよい。
【００３９】
また、計算機や通信媒体の利用に料金がかかるような場合に、再構成を実施する判定で、計算機での計算量やシミュレータ間のデータ通信量から再構成後に必要となる料金を見積もって、それを考慮してもよい。
【００４０】
例えば、計算機や通信媒体を特定する情報と共に、これらの利用に要する料金に関する情報をシミュレータ再構成部に予め設定しておく。これにより、シミュレータ再構成部は、システムの構成を決定するにあたり、料金が必要な計算機や通信媒体を構成に加える場合、前記計算機や通信媒体を特定する情報で料金に関する情報を読み出し、再構成後の計算機のシミュレータや通信媒体の利用頻度などを考慮して再構成後に必要となる料金を見積もる。
【００４１】
さらに、本実施の形態による分散シミュレーションシステムを構成する計算機のうちの少なくとも一つ、若しくは、全く別個の計算機をサーバとして各計算機の計算量監視部や通信量監視部が監視している計算量や通信量の情報を収集させ、当該サーバで再構成を一元管理するように構成しても良い。
【００４２】
しかしながら、本実施の形態による分散シミュレーションシステムでは、各計算機の計算量監視部や通信量監視部が監視している計算量や通信量の情報を、分散する計算機のシミュレータ再構成部間で互いに交換し、各計算機のシミュレータ再構成部が自律分散的に再構成の判定を行って再構成を実施する方がベターである。このようにすることで、特定のサーバに負荷が集中することがなく、例えばサーバがダウンしたことによって統合シミュレーション全体が停止することもなくなる。
【００４３】
また、統合シミュレーションを実行する前に、計算量監視部１０６ａ，１０６ｂが、計算機１００ａ，１００ｂの性能（例えば、搭載しているＣＰＵの動作周波数やメモリの容量など）をそれぞれ計測し、統合シミュレーション実行時にその計測値に基づいてそれぞれの計算機１００ａ，１００ｂ上のシミュレータの実行処理に要する時間を計算するようにしてもよい。このようにすれば、シミュレータユーザが統合シミュレーション前に各計算機の性能を予め設定する必要がなくなる。
【００４４】
さらに、シミュレータ再構成部における計算量監視部及び通信量監視部が、自己が構築された計算機で現在使用可能なメモリサイズ及びスワップサイズを監視し、この監視結果を用いてシミュレータ再構成部が再構成の判定を行うようにしてもよい。このように再構成の判定を行うことにより、スワッピングに要する時間も考慮してシミュレータの構成を決定することができ、統合シミュレーション全体としての実行時間をより短縮することができる。
【００４５】
なお、上記実施の形態１では、計算機１００ａ，１００ｂにより構成される単一の分散シミュレーションシステムに対する統合シミュレーションについて説明したが、複数のシステムに対する統合シミュレーションを行う場合には、それらの複数の統合シミュレーションを全て合わせて１つの統合シミュレーションとして扱うことにより、単一の統合シミュレーションを行う場合と同様に計算機の負荷と通信時間を考慮した最適な再構成を実現することができる。
【００４６】
実施の形態２．
図３は、この発明の実施の形態２による分散シミュレーションシステムの構成を示すブロック図であり、計算機１００ａ，１００ｂ，１００ｃ，１００ｄ上に構築したシミュレーションシステムでそれぞれ実行されるシミュレーションを連携・統合させて１つの統合されたシミュレーションを実行する。ここで、各計算機１００ａ，１００ｂ，１００ｃ，１００ｄの分散シミュレータ管理部１０２ａ，１０２ｂ，１０２ｃ，１０２ｄには、例えば各計算機１００ａ〜１００ｄに備えた、分散シミュレータ管理部１０２ａ〜１０２ｄから適宜読み出し可能な不図示のメモリに記憶することにより、統合シミュレーションを実行する計算機１００ａ〜１００ｄ間の接続構成情報１１０ａ，１１０ｂ，１１０ｃ，１１０ｄが保持される。
【００４７】
接続構成情報１１０ａ〜１１０ｄは、計算機１００ａ〜１００ｄ間を接続する通信媒体、即ちシミュレータ１０１ａ〜１０１ｈ間のデータ通信を媒体する通信媒体におけるデータ通信時間を規定する情報を記述した情報である。通信媒体のデータ通信時間を規定する情報としては、例えば当該通信媒体を介する計算機間でデータ通信を行う場合における、データを送信する計算機とデータを受信する計算機との関係が記述される他、通信媒体に応じたデータ伝送遅延時間の情報などが記述される。
【００４８】
本実施の形態では、シミュレータ再構成部１０５ａ〜１０５ｄが、シミュレータ１０１ａ〜１０１ｈ間の通信量に基づいて再構成を実施する場合に、前述した接続構成情報１１０ａ〜１１０ｄを利用することで、データ通信に要する時間を計算機１００ａ〜１００ｄ間の通信媒体に応じて計算することができる。これにより、より適切に統合シミュレーションの実行時間を短縮する再構成を実行することができる。
【００４９】
図３の例では、計算機１００ａと計算機１００ｂはＬＡＮ１０８で接続されているが、計算機１００ｃ，計算機１００ｄはインターネット１０９を介して接続されている。この場合、一般的に計算機１００ｃ，１００ｄ間の方が計算機１００ａ，１００ｂ間よりも通信に時間がかかる。そこで、再構成の判定には、接続構成情報１１０ａ〜１１０ｄに基づき通信媒体に応じて計算した通信時間を計算した結果を判定基準として使用し、再構成後の統合シミュレーションの実行時間が短くなるような構成を決定しその構成に変更する。
【００５０】
具体的には、例えば図３でインターネット１０９で接続された計算機１００ｃ上に構築されてシミュレーションを実行しているシミュレータ１０１ｅが、計算機１００ａ上のシミュレータ１０１ａと大量のデータ通信を行っており、統合シミュレーション全体の実行時間のうち、シミュレータ１０１ａ，１０１ｅ間の通信時間に占める割合が大きくなるため、統合シミュレーション全体の実行時間がかかってしまっている場合を考える。
【００５１】
このような場合、シミュレータ再構成部１０２ａ〜１０２ｃが、接続構成情報１１０ａ〜１１０ｃに基づき、インターネット１０９より通信時間がかからないＬＡＮ１０８を経由する接続構成を抽出し、このＬＡＮ１０８を経由して計算機１００ａと接続する計算機１００ｂを、シミュレータ１０１ｅを実行する計算機に変更するシステム再構成を実施する。これにより、シミュレータ１０１ａ，１０１ｅ間の通信がＬＡＮ１０８経由になって通信時間を短縮することができる。また、シミュレータ１０１ｅを計算機１００ａで実行する構成に変更してシミュレータ１０１ａ，１０１ｅ間の通信をプロセス間通信にすることで通信時間をさらに短縮することができる。
【００５２】
なお、いずれの構成も通信時間だけでなく、上記実施の形態１と同様にシミュレーション処理の計算時間も考慮して統合シミュレーション全体としての実行時間が短くなる構成を選択して再構成を実施し、実行時間を短縮することができる。
【００５３】
以上のように、この実施の形態２によれば、計算機１００ａ〜１００ｄ間を接続する通信媒体におけるデータ通信時間に関する情報を記述した接続構成情報１１０ａ〜１１０ｄを利用して再構成すべき構成を判断するので、通信媒体ごとのデータ伝送に要する時間に基づいて分散処理に要する処理時間とデータ通信量を考慮したシステム構成を決定することができ、分散シミュレーションシステム全体の処理実行時間を短縮することができる。
【００５４】
なお、上記実施の形態２においても、上記実施の形態１と同様に再構成を実施するか否かの判定で、実際に構成を変更するために要する時間（例えば、シミュレータ自体を移動するための通信時間（シミュレータを構築するための実行モジュールプログラムの転送時間）、シミュレータの状態を保存したデータの通信時間、シミュレータの一時停止や再開に要する時間等）を、計算量監視部や通信量監視部が求めた計測量、接続構成情報に基づいてシミュレータ自体のプログラムサイズや状態を規定する情報を保存したデータのサイズ及びシミュレータ間の通信媒体から見積もって判定基準に用いてもよい。これにより、再構成に要する時間も含めた全体のシミュレーション時間を短縮することができる。
【００５５】
また、計算機や通信媒体の利用に料金がかかるような場合に、接続構成情報１１０ａ，１１０ｂ，１１０ｃ，１１０ｄに通信媒体に応じて定められた利用料金の情報を保持し、再構成を実施する判定で、計算機での計算量やシミュレータ間のデータ通信量から再構成後に必要となる料金を見積もって、それを考慮してもよい。これにより、再構成後に要する利用料金（コスト）も含めて効果的な構成かどうかを判定できる。
【００５６】
さらに、シミュレータの再構成を行うことによりシミュレータを構築する計算機が変わる場合、シミュレータ再構成部が、当該シミュレータの実行モジュール（プログラム）と現在の状態とを保存したデータを再構成後の計算機へ送信し、再構成後の計算機上で保存された状態から実行を再開するようにしてもよい。
【００５７】
また、シミュレータの実行モジュールだけは予め再構成後の計算機上にも用意しておき（例えば、全ての計算機に用意しておくか、計算機の性能上再構成後にシミュレータを構築すべき計算機として選択されることが予想される計算機に予め用意しておく）、シミュレータ再構成部が、再構成を行うときに現在の状態を保存したデータのみを再構成後の計算機に送信し、当該計算機がその状態からシミュレーションを再開するように構成してもよい。
【００５８】
なお、実施の形態２においても、実施の形態１と同様に、各計算機で監視している計算量と通信量の情報を分散する計算機間で互いに交換することによって自律分散的に再構成の判定を行って再構成を実施してもよいし、１つのサーバが情報を収集して再構成の判定を行って再構成を実施してもよい。自律分散的に再構成の判定を行って再構成できると、特定のサーバに負荷が集中することがなく、サーバがダウンしたことによって統合シミュレーション全体が停止することもなくなる。
【００５９】
また、上記実施の形態２においても、上記実施の形態１と同様に、統合シミュレーションを実行する前に、計算量監視部１０６ａ，１０６ｂ，１０６ｃ，１０６ｄが、計算機１００ａ〜１００ｄの性能（例えば、搭載しているＣＰＵの動作周波数やメモリの容量など）をそれぞれ計測し、統合シミュレーション実行時にその計測値に基づいてそれぞれの計算機上のシミュレータの実行処理に要する時間を計算するようにしてもよい。このようにすれば、シミュレータユーザが統合シミュレーション前に各計算機の性能を予め設定する必要がなくなる。
【００６０】
さらに、シミュレータ再構成部における計算量監視部及び通信量監視部が、自己が構築された計算機で現在使用可能なメモリサイズ及びスワップサイズを監視し、この監視結果を用いてシミュレータ再構成部が再構成の判定を行うようにしてもよい。このように再構成の判定を行うことにより、スワッピングに要する時間も考慮してシミュレータの構成を決定することができ、統合シミュレーション全体としての実行時間をより短縮することができる。
【００６１】
なお、上記実施の形態２においても、上記実施の形態１と同様に、複数の分散シミュレーションシステムに対する統合シミュレーションを行う場合には、それらの複数の統合シミュレーションを全て合わせて１つの統合シミュレーションとして扱うことにより、単一の統合シミュレーションを行う場合と同様に計算機の負荷と通信時間を考慮した最適な再構成を実現することができる。
【産業上の利用可能性】
【００６２】
この発明に係る分散シミュレーションシステムは、シミュレータの処理の計算量の偏りだけでなく、シミュレータ間の通信量の偏りも考慮したシステム再構成を実行することができることから、シミュレータ間のデータ通信量が多い生産システム分野における統合シミュレーションシステムとして好適に利用可能である。
【図面の簡単な説明】
【００６３】
【図１】この発明の実施の形態１による分散シミュレーションシステムの構成を示すブロック図である。
【図２】実施の形態１の分散シミュレーションシステムの動作を示すフローチャートである。
【図３】この発明の実施の形態２による分散シミュレーションシステムの構成を示すブロック図である。
【符号の説明】
【００６４】
１００ａ，１００ｂ，１００ｃ，１００ｄ  計算機（コンピュータ）、１０１ａ，１０１ｂ，１０１ｃ，１０１ｄ，１０１ｅ，１０１ｆ，１０１ｇ，１０１ｈ  シミュレータ、１０２ａ，１０２ｂ，１０２ｃ，１０２ｄ  分散シミュレータ管理部、１０３ａ，１０３ｂ，１０３ｃ，１０３ｄ  同期管理部、１０４ａ，１０４ｂ，１０４ｃ，１０４ｄ  通信管理部、１０５ａ，１０５ｂ，１０５ｃ，１０５ｄ  シミュレータ再構成部（再構成部）、１０６ａ，１０６ｂ，１０６ｃ，１０６ｄ  計算量監視部、１０７ａ，１０７ｂ，１０７ｃ，１０７ｄ  通信量監視部、１０８  ＬＡＮ、１０９  インターネット、１１０ａ，１１０ｂ，１１０ｃ，１１０ｄ  接続構成情報。
【図１】
2006079341.tif 000003
【図２】
2006079341.tif 000004
【図３】
2006079341.tif 000005