(57)【特許請求の範囲】
【請求項１】
複数のシミュレーション要素の実行を制御するシミュレーション実行制御装置であって、
シミュレーションの実行に先立ち、予め設定されたシミュレーションシナリオに基づいて、シミュレーション要素ごとに、データ送受信の相手先となる他のシミュレーション要素を特定するとともに、特定した他のシミュレーション要素とのデータ送受信頻度を、シミュレーション進行の進捗度合いを示すシミュレーション論理時刻ごとに判定する送受信判定部と、
シミュレーションの実行に先立ち、前記送受信判定部の判定結果に基づき、複数のシミュレーション要素の各々に対して、シミュレーション要素を実行する実行プロセッサを前記シミュレーション論理時刻ごとに複数のプロセッサの中から選択し、相互間でデータ送受信が行われる二つのシミュレーション要素について、当該二つのシミュレーション要素間のデータ送受信頻度が高いシミュレーション論理時刻の間、当該二つのシミュレーション要素の実行プロセッサを同じプロセッサとするスケジュールを作成するプロセッサ選択部とを有することを特徴とするシミュレーション実行制御装置。
【請求項２】
前記プロセッサ選択部は、
相互間でデータ送受信が行われない二つのシミュレーション要素の実行プロセッサを異なるプロセッサとするスケジュールを作成することを特徴とする請求項１に記載のシミュレーション実行制御装置。
【請求項３】
前記送受信判定部は、
予め設定されたシミュレーションシナリオに変更が加えられた場合に、シミュレーションシナリオに加えられた変更を分析し、シミュレーション要素ごとに、データ送受信の相手先となる他のシミュレーション要素を推定するとともに、推定した他のシミュレーション要素とのデータ送受信頻度を前記シミュレーション論理時刻ごとに推測することを特徴とする請求項１に記載のシミュレーション実行制御装置。
【請求項４】
前記プロセッサ選択部は、
相互間でデータ送受信が行われると推定される二つのシミュレーション要素について、当該二つのシミュレーション要素間のデータ送受信頻度が高いと推測されるシミュレーション論理時刻の間、当該二つのシミュレーション要素の実行プロセッサを同じプロセッサとすることを特徴とする請求項３に記載のシミュレーション実行制御装置。
【請求項５】
コンピュータに、複数のシミュレーション要素の実行制御を実行させるプログラムであって、
シミュレーションの実行に先立ち、予め設定されたシミュレーションシナリオに基づいて、シミュレーション要素ごとに、データ送受信の相手先となる他のシミュレーション要素を特定するとともに、特定した他のシミュレーション要素とのデータ送受信頻度を、シミュレーション進行の進捗度合いを示すシミュレーション論理時刻ごとに判定する送受信判定処理と、
シミュレーションの実行に先立ち、前記送受信判定処理の判定結果に基づき、複数のシミュレーション要素の各々に対して、シミュレーション要素を実行する実行プロセッサを前記シミュレーション論理時刻ごとに複数のプロセッサの中から選択し、相互間でデータ送受信が行われる二つのシミュレーション要素について、当該二つのシミュレーション要素間のデータ送受信頻度が高いシミュレーション論理時刻の間、当該二つのシミュレーション要素の実行プロセッサを同じプロセッサとするスケジュールを作成するプロセッサ選択処理とをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、訓練用シミュレーション、計画・予測・解析用シミュレーションなど、様々な用途のシミュレーションシステムにおいて、そのシミュレーション実行の個々のシミュレーション要素を複数の論理プロセッサで分担実行する分散シミュレーションシステムに関して、シミュレーション要素を論理プロセッサに最適に配置する技術分野に属するものである。
【背景技術】
【０００２】
分散シミュレーションシステムは、シミュレーションを構成する個々のシミュレーション要素を複数の論理プロセッサで分担実行するシステムである。分散シミュレーションシステムでは、シミュレーションの処理内容、処理状況に応じて個々のシミュレーション要素の処理負荷や、シミュレーション要素間のイベント交換頻度が変動するため、論理プロセッサあたりの処理負荷、データ通信頻度等のアンバランスが発生し易く、システム全体の処理速度の最適化が難しいという課題がある。そのため、従来より、論理プロセッサ間の負荷バランスを動的に調整する方式についての提案が行われている。
【０００３】
特開２００２−３４２２９７号公報は、各論理プロセッサ上でのシミュレーション要素の実行で消費されるＣＰＵ負荷やメモリ使用量などのシステムリソースや、シミュレーション要素間のイベント交換に要するデータ通信量に基づき、シミュレーション要素の論理プロセッサへの配置を決定する分散シミュレーション制御装置に関する提案である。本提案では、論理プロセッサの実行中に、論理プロセッサ上のシミュレーション要素が消費するＣＰＵ負荷率やメモリ使用量を計測し、また、シミュレーション要素間のイベント交換に要するデータ通信を計測し、それらの統計データを基に、次に実行するシミュレーションでの各論理プロセッサに対するシミュレーション要素の配置先を決定し、配置する。
【０００４】
従来の提案では、実際のシミュレーション要素の実行におけるＣＰＵ負荷率やメモリ使用量、ネットワーク負荷の統計情報を基に、論理プロセッサ間でシミュレーション要素の配置を決定することにより、分散シミュレーション実行における効率化を行うことができるが、以下のような課題がある。
【０００５】
まず、従来の提案では、シミュレーションの実行において、シミュレーション要素のＣＰＵ使用率、メモリ使用量、ネットワーク負荷が大きく動的に変化するような状況について、最適なシミュレーション要素の配置を行うことが困難である。
【０００６】
また、従来の提案では、次のシミュレーション実行において統計的に同程度のＣＰＵ使用率、メモリ使用量、ネットワーク負荷になる場合については有効であるが、人間による動的なシミュレーションパラメータ値の変更を許容するようなシミュレーションや、あるいは乱数発生等に依存して毎回結果が変わるようなシミュレーションの場合には、効果を発揮することができない。
【特許文献１】特開２００２−３４２２９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、従来の課題であった、シミュレーションの実行において、シミュレーション要素のＣＰＵ使用率、メモリ使用量、ネットワーク負荷が大きく動的に変化するような状況や、または、人間による動的なシミュレーションパラメータ値の変更を許容するようなシミュレーションや、あるいは乱数発生等に依存して毎回結果が変わるようなシミュレーションの場合であっても、常に最適なシミュレーション要素の論理プロセッサに対する実行配分を行うための分散シミュレーションシステムを提供することを主な目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るシミュレーション実行制御装置は、
複数のシミュレーション要素の実行を制御するシミュレーション実行制御装置であって、
シミュレーション要素ごとに、データ送受信の相手先となる他のシミュレーション要素を特定するとともに、特定した他のシミュレーション要素とのデータ送受信頻度を判定する送受信判定部と、
前記送受信判定部の判定結果に基づき、複数のシミュレーション要素の各々に対して、シミュレーション要素を実行する実行プロセッサを複数のプロセッサの中から選択するプロセッサ選択部とを有することを特徴とする。
【０００９】
前記プロセッサ選択部は、
相互間のデータ送受信頻度が高い二つのシミュレーション要素の実行プロセッサを同じプロセッサとすることを特徴とする請求項１に記載のシミュレーション実行制御装置。
【発明の効果】
【００１０】
本発明によれば、シミュレーション要素間のデータ送受信の関係と頻度を判定し、判定結果に基づき、シミュレーション要素を実行する実行プロセッサを選択するため、通信頻度の高いシミュレーション要素間が同じ論理プロセッサ内で実行され、このため通信頻度が高いシミュレーション要素間の通信処理を同じ論理プロセッサ内で行うことにより、他の論理プロセッサとの通信処理を削減することができ、システム全体の処理効率を向上することができる。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
分散シミュレーションシステムは、シミュレーションを構成する個々のシミュレーション要素を複数の論理プロセッサで分担実行するシステムである。分散シミュレーションシステムでは、シミュレーションの処理内容、処理状況に応じて個々のシミュレーション要素の処理負荷や、シミュレーション要素間のイベント交換頻度が変動するため、論理プロセッサあたりの処理負荷、データ通信頻度等のアンバランスが発生し易く、システム全体の処理速度の最適化が難しいという課題がある。
本実施の形態では、常に最適なシミュレーション要素の論理プロセッサに対する配置を行うために、従来の提案で用いていた、ＣＰＵ使用率、メモリ使用量、ネットワーク負荷という状況に応じて変動する要素ではなく、これらの要素を変動させる要因となるシミュレーション状況に着目する。
【００１２】
本発明の実施の形態１では、シミュレーション要素の論理プロセッサに対する実行配分の形態として、シミュレーション状況に応じて決定される、シミュレーション要素間のデータ送受信の関係と頻度に着目した実行配分について説明する。
図１は、本発明の実施の形態１に係る分散シミュレーションシステムの構成例を示す。
図１において、１０１は、本実施の形態に係る分散シミュレーションシステムを構成する、複数の論理プロセッサである（以下、単にプロセッサともいう）。
１０２は、本実施の形態に係る分散シミュレーションシステムの実行要素プログラムである、複数のシミュレーション要素であり、実行状態について休止状態か、活動状態の２つの状態にある。シミュレーション要素１０２は、それぞれの論理プロセッサ１０１に同じ種類のシミュレーション要素１０２が同じ数だけ配置されており、分散シミュレーションシステム全体として必ず一つのみが「活動」状態となる。
１０３は、各論理プロセッサにおいて、各論理プロセッサ１０１内のシミュレーション要素１０２を管理する、シミュレーション要素管理部である。
１０４は、各論理プロセッサ１０１において、各論理プロセッサ１０１内のシミュレーション要素１０２の実行状態（休止状態か、または活動状態）を制御するシミュレーション要素実行状態制御部（シミュレーション実行制御装置）である。
１０５は、各論理プロセッサ１０１において、各論理プロセッサ１０１内のシミュレーション要素１０２のシミュレーションの実行中に発生するイベント等において、他のシミュレーション要素１０２に対するデータの送受信を制御するシミュレーション要素間通信制御部である。
【００１３】
図２は、シミュレーション要素実行制御部１０４の内部構成例を示す。
図２において、通信制御部インタフェース１０４１は、シミュレーション要素実行制御部１０４内においてシミュレーション要素間通信制御部１０５とのインタフェースとなる。
送受信判定部１０４２は、シミュレーション要素１０２ごとに、データ送受信の相手先となる他のシミュレーション要素を特定するとともに、特定した他のシミュレーション要素とのデータ送受信頻度を判定する。
プロセッサ選択部１０４３は、送受信判定部１０４２の判定結果に基づき、複数のシミュレーション要素の各々に対して、シミュレーション要素を実行する実行プロセッサを複数のプロセッサの中から選択する。後述するように、プロセッサ選択部１０４３は、相互間のデータ送受信頻度が高い二つのシミュレーション要素の実行プロセッサを同じプロセッサとする。また、プロセッサ選択部１０４３は、相互間でデータ送受信が行われない二つのシミュレーション要素の実行プロセッサを異なるプロセッサとする。
【００１４】
本実施の形態では、分散シミュレーションシステムにおいて、シミュレーション状況に応じて各論理プロセッサで実行されるシミュレーション要素の活動・休止状態を制御することにより、システム全体の処理効率を向上する。
つまり、個々のシミュレーション要素の処理負荷や、シミュレーション要素間のイベント交換頻度が変動する原因であるシミュレーション状況に着目し、シミュレーション状況に応じて論理プロセッサに対するシミュレーション要素の実行配分を行う。具体的には、送受信判定部１０４２が、シミュレーション要素１０２ごとに、データ送受信の相手先となる他のシミュレーション要素を特定するとともに、特定した他のシミュレーション要素とのデータ送受信頻度を判定し、プロセッサ選択部１０４３が、判定結果に基づき、複数のシミュレーション要素の各々に対して、シミュレーション要素を実行する実行プロセッサを複数のプロセッサ１０１の中から選択する。
【００１５】
図１２は、実施の形態１における分散シミュレーションシステムのハードウェア資源の一例を示す図である。分散シミュレーションシステムは、コンピュータ装置により実現される。
図１２において、分散シミュレーションシステムは、シミュレーション要素やプログラムを実行するプロセッサ９１１（ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータともいう）を備えている。プロセッサ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続されていてもよい。また、プロセッサ９１１は、これらのハードウェアデバイスを制御する。更に、プロセッサ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
なお、図１２では、単一のプロセッサ９１１が示されているが、これは作図上の理由であり、本実施の形態では、複数のプロセッサが配置されているものとする。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００１６】
通信ボード９１５は、ネットワークに接続されている。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、プロセッサ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００１７】
上記プログラム群９２３には、以下に述べる説明において「〜部」、「〜手段」として説明する機能を実行するプログラムが記憶されている。プログラムは、プロセッサ９１１により読み出され実行される。
また、プログラム群９２３として、各シミュレーション要素１０２が記憶され、プロセッサ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」、「〜の評価結果」等として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してプロセッサ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのプロセッサの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示・抽出のプロセッサの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下で説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１８】
また、以下に述べる説明において「〜部」、「〜手段」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」、「〜手段」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはプロセッサ９１１により読み出され、プロセッサ９１１により実行される。すなわち、プログラムは、以下に述べる「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【００１９】
このように、本実施の形態及び以下に述べる実施の形態に示す分散シミュレーションシステムは、処理装置たるプロセッサ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【００２０】
次に、シミュレーションの実行例に基づき、図２〜図７を用いて動作について説明する。
【００２１】
図３は、図１の分散シミュレーションシステムで実行されているシミュレーションの例である。図３において、分散シミュレーションシステムは図１の論理プロセッサ（１０１）が２つ、すなわち論理プロセッサ１（２０１）及び論理プロセッサ２（２１１）により構成されている。
各論理プロセッサの図１のシミュレーション要素１０２として、論理プロセッサ１（２０１）には航空機１（２０７）、航空機２（２０８）、レーダ１（２０９）、航空管制１（２１０）の４種、論理プロセッサ２（２１１）には航空機１（２１６）、航空機２（２１７）、レーダ１（２１８）、航空管制１（２１９）の４種のそれぞれが配置されている。
なお、各シミュレーション要素の実行状態は、論理プロセッサ１（２０１）の航空機１（２０７）、航空機２（２０８）、レーダ１（２０９）、航空管制１（２１０）の４種は活動状態であり、論理プロセッサ２（２１１）の航空機１（２１６）、航空機２（２１７）、レーダ１（２１８）、航空管制１（２１９）の４種は休止状態である。
【００２２】
ここで、図４〜図６を用い、図１のシミュレーション要素実行制御部１０４により、図３のような各シミュレーション要素の実行状態が決定されるまでの動作について説明する。
図４は、図３の分散シミュレーションシステムで実行されるシミュレーション状況の例を示した図であり、航空管制１が、レーダ１により探知された航空機の位置情報を基に、航空機１、航空機２の２機の航空機に対して交信するというシミュレーション状況を表している。
図５は、図３のシミュレーション要素間通信制御部１（２０５）、シミュレーション要素間通信制御部２（２１５）に対する初期設定として与えられたか、または、シミュレーション要素間通信制御部１（２０５）、シミュレーション要素間通信制御部２（２１５）が動的に各シミュレーション要素のデータ送受信状況を監視したことにより保持している、図４のシミュレーション状況における、各シミュレーション要素間のデータ送受信の関係と頻度を示している。なお、図６は、図５に示す各シミュレーション要素間のデータ送受信の関係を、表形式で表した図である。
【００２３】
ここでは、図３のシミュレーション要素実行制御部１（２０４）、シミュレーション要素実行制御部２（２１４）のうち、シミュレーション要素実行制御部１（２０４）が代表して実行プロセッサを決定するものとする。
具体的には、図３のシミュレーション要素実行制御部１（２０４）の送受信判定部１０４２が、通信制御部インタフェース１０４１を介して図３のシミュレーション要素間通信制御部１（２０５）から図５、図６に示される情報を取得し、図３のシミュレーション要素実行制御部１（２０４）のプロセッサ選択部１０４３が、以下のようなルールにより、各論理プロセッサの各シミュレーション要素の実行状態を決定する。
ルール１：データ送受信の関係があり、かつ通信頻度の高い２つのシミュレーション要素同士は、同じ論理プロセッサ内で活動状態とする。
ルール２：データ送受信の関係が無い２つのシミュレーション要素同士は、異なる２つ論理プロセッサで分担して実行するよう、活動状態と休止状態を設定する。
ルール３：ルール１の適用結果とルール２の適用結果が相反する場合、ルール１の適用結果を優先する。
【００２４】
図５、図６に示される情報に対し、上記のルールを適用すると、以下のような結果となる。
ルール１の適用結果：航空機１とレーダ１、航空機２とレーダ１、レーダ１と航空管制１は、同じ論理プロセッサ内で活動状態とする。
ルール２の適用結果：航空機１と航空機２を、異なる論理プロセッサ内で活動状態とする。
ルール３の適用結果：ルール１の適用結果（航空機１と航空機２は、同じ論理プロセッサ内で活動状態とする）とルール２の適用結果（航空機１と航空機２は、異なる論理プロセッサ内で活動状態とする）が相反するため、ルール１の適用結果を優先する。
【００２５】
以上のルール１、ルール２、ルール３の適用結果により、図３のシミュレーション要素実行制御部１（２０４）は、論理プロセッサ１（２０１）のシミュレーション要素である航空機１（２０７）、航空機２（２０８）、レーダ１（２０９）、航空管制１（２１０）を活動状態とし、シミュレーション要素実行制御部２（２１４）は、論理プロセッサ２（２１１）のシミュレーション要素である航空機１（２１６）、航空機２（２１７）、レーダ１（２１８）、航空管制１（２１９）を休止状態とする。
【００２６】
次に、シミュレーション要素実行制御部１０４の動作例を図７のフローチャートを参照して説明する。
先ず、送受信判定部１０４２が、通信制御部インタフェース１０４１を介してシミュレーション要素間通信制御部１０５から図５又は図６に示されるデータ送受信状況情報を取得する（Ｓ７０１）。
次に、送受信判定部１０４２は、取得したデータ送受信状況情報に基づき、シミュレーション要素ごとに、データ送受信の相手先となる他のシミュレーション要素を特定し、相手先となるシミュレーション要素とのデータ送受信頻度を判定する（Ｓ７０２）（送受信判定ステップ）。
次に、プロセッサ選択部１０４３が、前述したルール１〜３に基づき、シミュレーション要素ごとに、複数の論理プロセッサの中から実行プロセッサを選択する（Ｓ７０３）（プロセッサ選択ステップ）。
次に、プロセッサ選択部１０４３は、Ｓ７０３で選択した実行プロセッサをシミュレーション要素ごとに示すプロセッサ選択結果情報を生成する（Ｓ７０４）。
次に、通信制御部インタフェース１０４１がプロセッサ選択結果情報をシミュレーション要素間通信制御部１０５に送信する（Ｓ７０５）。
これにより、シミュレーション要素間通信制御部１０５がプロセッサ選択結果情報をネットワークを介して他の論理プロセッサのシミュレーション要素間通信制御部１０５に送信し、他の論理プロセッサのシミュレーション要素実行制御部では、プロセッサ選択結果情報に従って、管理しているシミュレーション要素を活動状態・休止状態のいずれかにする。
【００２７】
このようなシミュレーション要素実行制御部によるシミュレーション要素の実行制御により、通信頻度の高いシミュレーション要素が同じ論理プロセッサ内で活動状態となるため、シミュレーション要素間のデータ通信が、処理遅延の大きいネットワークを介した他の論理プロセッサに対する通信処理として実行される必要が無くなる。
【００２８】
以上のように、本実施の形態では、複数の論理プロセッサでシミュレーション要素を分担実行する分散シミュレーションシステムにおいて、シミュレーション状況に応じて決定されるシミュレーション要素間のデータ送受信の関係と頻度によって、各論理プロセッサで実行されるシミュレーション要素の活動状態、休止状態を制御することにより、通信頻度の高いシミュレーション要素間のデータ通信が論理プロセッサ内で実行され、処理遅延の大きいネットワークを介した他の論理プロセッサに対する通信処理の実行が削減されるため、システム全体の処理効率を向上することが可能な分散シミュレーションシステムについて説明した。
【００２９】
実施の形態２．
図３では、実施の形態１によるシミュレーション要素の実行制御の結果の例を示したが、この例では、論理プロセッサ１（２０１）のシミュレーション要素のみが処理実行され、論理プロセッサ２（２１１）のシミュレーション要素は全く処理実行されないため、全体として論理プロセッサ１（２０１）にのみ負荷が集中しており、非効率な実行状態となっている。
そこで、図８に示した各シミュレーション要素間の通信頻度と条件、及びシミュレーション状況に着目し、より効率的なシミュレーション要素の実行制御を行う形態について説明する。
本実施の形態では、図８に示すように、各論理プロセッサは、シミュレーション要素・活動停止管理部１０７を備える。このシミュレーション要素・活動停止管理部１０７は、シミュレーション要素実行制御部１１０による実行プロセッサの選択結果に基づき、管理するシミュレーション要素を活動状態又は休止状態にする。
また、本実施の形態では、シミュレーション要素実行制御部１１０は、シミュレーション要素を実行する論理プロセッサからは独立し、ネットワークを介して各論理プロセッサと接続されている。但し、図８の構成と異なり、シミュレーション要素実行制御部１１０がいずれかの論理プロセッサ内で実現されていても構わない。
また、本実施の形態に係るシミュレーション要素実行制御部１１０の内部構成は、図２に示したものと同様である。
本実施の形態においては、送受信判定部１０４２は、予め設定されたシミュレーションシナリオに基づいて、シミュレーション要素ごとに、データ送受信の相手先となる他のシミュレーション要素を特定するとともに、特定した他のシミュレーション要素とのデータ送受信頻度を単位時間ごとに判定する。
更に、プロセッサ選択部１０４３は、相互間でデータ送受信が行われる二つのシミュレーション要素について、当該二つのシミュレーション要素間のデータ送受信頻度が高い時間の間、当該二つのシミュレーション要素の実行プロセッサを同じプロセッサとする。
【００３０】
図９は、座標（緯度、経度）に対する各シミュレーション要素１０２の位置関係を示しており、シミュレーション要素のうち航空機１及び航空機２は、共にシミュレーション実行中に位置が変化する移動体であるので、シミュレーション進行の進捗度合いを示すシミュレーション論理時刻（ＬＴ）毎の位置情報を示している。また、レーダ１については、レーダの最大探知範囲であるレーダ１覆域を示している。
【００３１】
各シミュレーション要素間のデータ送受信の関係を示す図６の情報によると、レーダ１は、航空機１、航空機２から受信した位置情報を基に、航空管制１に対して探知結果を送信している。即ち、航空機１、航空機２がレーダ１の探知領域外に位置している場合は、レーダ１は航空管制１に対して航空機１、航空機２の探知結果を送信することができないため、この場合のレーダ１と航空機１、航空機２の位置情報の通信は無駄な処理である。
そのため、図９に示した、シミュレーション論理時刻（ＬＴ）毎の航空機１及び航空機２の位置情報が予めシミュレーションシナリオとして設定される場合、シミュレーション要素実行制御部１１０は、シミュレーションシナリオに設定された論理時刻（ＬＴ）毎にルール１、ルール２、ルール３を適用することにより、図１０に示すようなシミュレーション要素の活動状態の割り当てのスケジュールを作成し、シミュレーション要素の実行制御を行う。
【００３２】
つまり、シミュレーション要素実行制御部１１０の送受信判定部１０４２は、１又は複数のシミュレーション要素間通信制御部１０５から図５又は図６に示すデータ送受信状況情報と、図９に示すシミュレーションシナリオを取得し、シミュレーション要素１０２ごとに、データ送受信の相手先となる他のシミュレーション要素を特定するとともに、特定した他のシミュレーション要素とのデータ送受信頻度を単位時間ごとに判定する。
そして、プロセッサ選択部１０４３は、前述したルール１〜３に基づき、シミュレーション要素ごとに、複数の論理プロセッサの中から実行プロセッサを選択する。具体的には、図１０に示すように、相互間でデータ送受信が行われる二つのシミュレーション要素について、当該二つのシミュレーション要素間のデータ送受信頻度が高い時間の間、当該二つのシミュレーション要素の実行プロセッサを同じプロセッサとする。
その後、実施の形態１と同様に、プロセッサ選択部１０４３は、Ｓ７０３で選択した実行プロセッサを単位時間ごとシミュレーション要素ごとに示すプロセッサ選択結果情報（図１０）を生成し、通信制御部インタフェース１０４１がプロセッサ選択結果情報をネットワークを介して各々のシミュレーション要素間通信制御部１０５に送信し、各々の論理プロセッサではシミュレーション要素・活動停止管理部１０７が、プロセッサ選択結果情報に従って、管理しているシミュレーション要素を活動状態・休止状態のいずれかにする。
【００３３】
このようなシミュレーション要素実行制御部によるシミュレーション要素の実行制御により、予めシミュレーションシナリオに設定された情報に基づき、必ず通信が行われる場合のみシミュレーション要素が同じ論理プロセッサ内で活動状態となるため、シミュレーション要素間のデータ通信が、処理遅延の大きいネットワークを介した他の論理プロセッサに対する通信処理として実行される必要が無くなるとともに、各論理プロセッサに対して効率的なシミュレーション要素の実行制御を行うことができる。
【００３４】
このように、本実施の形態では、複数の論理プロセッサでシミュレーション要素を分担実行する分散シミュレーションシステムにおいて、予め設定されたシミュレーションシナリオに依存したシミュレーション状況に応じて決定されるシミュレーション要素間のデータ送受信の関係と頻度によって、各論理プロセッサで実行されるシミュレーション要素の活動状態、休止状態を制御することにより、通信頻度の高いシミュレーション要素間のデータ通信が論理プロセッサ内で実行され、処理遅延の大きいネットワークを介した他の論理プロセッサに対する通信処理の実行が削減されるため、システム全体の処理効率を向上することが可能な分散シミュレーションシステムについて説明した。
【００３５】
実施の形態３．
実施の形態２では、予めシミュレーションシナリオに設定されたシミュレーション要素の情報に基づいたシミュレーション要素の実行制御について説明した。
実施の形態３では、シミュレーション要素の状態が、予め設定された情報ではなく、動的に変化する場合のシミュレーション要素の実行制御について説明する。
【００３６】
本実施の形態に係る分散シミュレーションシステムの構成は、図８に示すものと同様である。また、実施の形態２と同様に、図８の構成と異なり、シミュレーション要素実行制御部１１０がいずれかの論理プロセッサ内で実現されていても構わない。
また、本実施の形態に係るシミュレーション要素実行制御部１１０の内部構成は、図２に示したものと同様である。
本実施の形態においては、送受信判定部１０４２は、予め設定されたシミュレーションシナリオに変更が加えられた場合に、シミュレーションシナリオに加えられた変更を分析し、シミュレーション要素ごとに、データ送受信の相手先となる他のシミュレーション要素を推定するとともに、推定した他のシミュレーション要素とのデータ送受信頻度を単位時間ごとに推測する。
また、プロセッサ選択部１０４３は、相互間でデータ送受信が行われると推定される二つのシミュレーション要素について、当該二つのシミュレーション要素間のデータ送受信頻度が高いと推測される時間の間、当該二つのシミュレーション要素の実行プロセッサを同じプロセッサとする。
【００３７】
図１１は、シミュレーション実行中に、シミュレーション利用者（人間）の操作により航空機２の位置情報である座標パラメータを変更された状況を示している。このような場合、座標値が変更された時点で、シミュレーション要素実行制御部１１０は、航空機の位置、向き、速度等の情報を用いる一般的な推測航法アルゴリズム（ｄｅａｄ−ｒｅｃｋｏｎｉｎｇ  ｎａｖｉｇａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）により、その後の各論理時刻における航空機２の位置情報を推測し、シミュレーション要素の活動状態の割り当てのスケジュールを作成し、シミュレーション要素の実行制御を行う。
【００３８】
つまり、プロセッサ選択部１０４３により各シミュレーション要素１０２に対して実行プロセッサが選択された後、シミュレーションが実行中に、シミュレーション利用者によりシミュレーションシナリオが変更された場合、送受信判定部１０４２は、既に取得済みのシミュレーションシナリオ（図９）と、データ送受信状況情報（図５又は図６）と、シミュレーションシナリオの変更内容に基づき、例えば、前述の推測航法アルゴリズムにより、シミュレーションシナリオに加えられた変更（航空機の位置など）を分析し、シミュレーションシナリオ変更後の状態に基づいて、シミュレーション要素ごとに、データ送受信の相手先となる他のシミュレーション要素を推定するとともに、推定した他のシミュレーション要素とのデータ送受信頻度を単位時間ごとに推測する。
そして、プロセッサ選択部１０４３は、送受信判定部１０４２の推測結果に対して、前述したルール１〜３を適用して、シミュレーション要素ごとに、複数の論理プロセッサの中から実行プロセッサを選択する。具体的には、相互間でデータ送受信が行われると推定される二つのシミュレーション要素について、当該二つのシミュレーション要素間のデータ送受信頻度が高いと推測される時間の間、当該二つのシミュレーション要素の実行プロセッサを同じプロセッサとする。
その後、実施の形態２と同様に、プロセッサ選択部１０４３は、Ｓ７０３で選択した実行プロセッサを単位時間ごとシミュレーション要素ごとに示すプロセッサ選択結果情報（図１０）を生成し、通信制御部インタフェース１０４１がプロセッサ選択結果情報をネットワークを介して各々のシミュレーション要素間通信制御部１０５に送信し、各々の論理プロセッサではシミュレーション要素・活動停止管理部１０７が、プロセッサ選択結果情報に従って、管理しているシミュレーション要素を活動状態・休止状態のいずれかにする。
【００３９】
このようなシミュレーション要素実行制御部によるシミュレーション要素の実行制御により、人間の操作等により動的にシミュレーション状況が変更された場合でも、通信が行われる場合を推測して、シミュレーション要素が同じ論理プロセッサ内で活動状態となるようなスケジュールを作成するため、各論理プロセッサに対して効率的なシミュレーション要素の実行制御を行うことができる。
【００４０】
このように本実施の形態では、複数の論理プロセッサでシミュレーション要素を分担実行する分散シミュレーションシステムにおいて、人間の操作等によって動的に変化するシミュレーション状況に応じて決定されるシミュレーション要素間のデータ送受信の関係と頻度を推測し、各論理プロセッサで実行されるシミュレーション要素の活動状態、休止状態を制御することにより、通信頻度の高いシミュレーション要素間のデータ通信が論理プロセッサ内で実行され、処理遅延の大きいネットワークを介した他の論理プロセッサに対する通信処理の実行が削減されるため、システム全体の処理効率を向上することが可能な分散シミュレーションシステムについて説明した。
【００４１】
なお、以上の説明では、航空機の航行シミュレーションを例にして説明したが、計画・予測・解析用シミュレーションなど、様々な用途のシミュレーションシステムに対して実施の形態１−３に示した分散シミュレーションシステムは適用可能である。
【００４２】
実施の形態１−３に示した分散シミュレーションシステムでは、シミュレーション要素間のデータ送受信の関係と頻度によって、各論理プロセッサで実行されるシミュレーション要素の活動状態、休止状態を制御することにより、通信頻度の高いシミュレーション要素間のデータ通信が論理プロセッサ内で実行されることになり、論理プロセッサ間の負荷バランスを適正化することができ、論理プロセッサのハードウェア資源を有効に活用することができる。また、他の論理プロセッサとの通信処理の実行が削減されるため、システム全体の処理効率を向上することが可能となる。
【図面の簡単な説明】
【００４３】
【図１】実施の形態１に係る分散シミュレーションシステムの構成例を示す図。
【図２】シミュレーション要素実行制御部の内部構成例を示す図。
【図３】実施の形態１の例による分散シミュレーションシステムの実行例を示す図。
【図４】図３の分散シミュレーションシステムで実行されるシミュレーション状況の例を示す図。
【図５】図４の例における各シミュレーション要素間のデータ送受信の関係図。
【図６】図５の例における各シミュレーション要素間のデータ送受信の関係表。
【図７】実施の形態１に係るシミュレーション要素実行制御部の動作例を示すフローチャート図。
【図８】実施の形態２に係る分散シミュレーションシステムの構成例を示す図。
【図９】座標（緯度、経度）に対する各シミュレーション要素の位置関係を示す図。
【図１０】シミュレーション要素の活動状態の割り当てのスケジュールを示す図。
【図１１】人間の操作により航空機２の座標パラメータが変更された状況図。
【図１２】実施の形態１−３に係る分散シミュレーションシステムのハードウェア構成例を示す図。
【符号の説明】
【００４４】
１０１  論理プロセッサ、１０２  シミュレーション要素、１０３  シミュレーション要素管理部、１０４  シミュレーション要素実行制御部、１０５  シミュレーション要素間通信制御部、１０７  シミュレーション要素・活動停止管理部、２０１  論理プロセッサ、２０２  シミュレーション要素、２０３  シミュレーション要素管理部、２０４  シミュレーション要素実行制御部、２０５  シミュレーション要素間通信制御部、２０６  ネットワーク、１０４１  通信制御部インタフェース、１０４２  送受信判定部、１０４３  プロセッサ選択部。
【図１】
0004509951.tif 000002
【図２】
0004509951.tif 000003
【図３】
0004509951.tif 000004
【図４】
0004509951.tif 000005
【図５】
0004509951.tif 000006
【図６】
0004509951.tif 000007
【図７】
0004509951.tif 000008
【図８】
0004509951.tif 000009
【図９】
0004509951.tif 000010
【図１０】
0004509951.tif 000011
【図１１】
0004509951.tif 000012
【図１２】
0004509951.tif 000013