(57)【要約】      （修正有）【課題】電波伝搬シミュレーションにおいて、効率的な並列処理を実現することができる電波伝搬シミュレーション装置及び電波伝搬シミュレーションプログラムを提供する。【解決手段】電波伝搬シミュレーション装置１００は、所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件を取得する取得部３０２と、シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、複数のシミュレーション処理を実行する実行環境に応じて決定する決定部３０４とを有する。【選択図】図３
2020191595.tif 000002
【特許請求の範囲】
【請求項１】
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件を取得する取得部と、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、該複数のシミュレーション処理を実行する実行環境に応じて決定する決定部と
を有することを特徴とする電波伝搬シミュレーション装置。
【請求項２】
前記取得部は、前記シミュレーション条件として、
前記所定空間を移動体が移動する場合の移動先の位置の数と、
前記所定空間に前記送信機を設置する場合の設置先の数と、各設置先に設置される前記送信機の数とに基づいて導出される、前記送信機の設置数と、
前記所定空間に前記受信機を設置する場合の設置先の数と、各設置先に設置される前記受信機の数とに基づいて導出される、前記受信機の設置数と
を取得することを特徴とする請求項１に記載の電波伝搬シミュレーション装置。
【請求項３】
前記決定部は、前記実行環境を示す情報である、前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、前記取得部が取得した、前記移動先の位置の数、前記送信機の設置数、前記受信機の設置数の少なくともいずれか１つとを対比することで、前記並列化方法を決定することを特徴とする請求項２に記載の電波伝搬シミュレーション装置。
【請求項４】
前記決定部は、
前記送信機の設置数と、前記受信機の設置数とに基づいて、前記送信機と前記受信機との間のリンク数を算出し、
前記実行環境を示す情報である、前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、算出した前記リンク数とを対比することで、前記並列化方法を決定することを特徴とする請求項２に記載の電波伝搬シミュレーション装置。
【請求項５】
それぞれの並列化方法に基づいて、前記複数のシミュレーション処理を実行した場合の実行時間を推定する推定部を更に有し、
前記決定部は、前記実行時間が最小となる並列化方法を決定することを特徴とする請求項１に記載の電波伝搬シミュレーション装置。
【請求項６】
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件を取得し、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、該複数のシミュレーション処理を実行する実行環境に応じて決定する、
処理をコンピュータに実行させるための電波伝搬シミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電波伝搬シミュレーション装置及び電波伝搬シミュレーションプログラムに関する。
【背景技術】
【０００２】
所定空間に複数のセンサを設置し、無線通信を介してデータ収集を行うＩｏＴシステムが普及している。一般に、無線通信を行う送信機（例えば、センサに内蔵された送信機）と受信機（例えば、Ｇａｔｅｗａｙ装置）とを所定空間に設置する場合、予め、電波伝搬シミュレーションを実行し、最適な設置位置の探索を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２９４１３３号公報
【特許文献２】特開２０１５−２２８１８６号公報
【特許文献３】特開２００４−２５４２５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方で、電波伝搬シミュレーションにおけるシミュレーション条件には、膨大な数の組み合わせがあり、各組み合わせについて、逐次、シミュレーション処理を実行したのでは（逐次処理を実行したのでは）、時間がかかる。
【０００５】
これに対して、並列にシミュレーション処理を実行することで（並列処理を実行することで）、電波伝搬シミュレーションにかかる時間を短縮することができる。加えて、当該並列処理を効率的に行うことで、更に時間を短縮することが期待できる。
【０００６】
一つの側面では、電波伝搬シミュレーションにおいて、効率的な並列処理を実現することを目的としている。
【課題を解決するための手段】
【０００７】
一態様によれば、電波伝搬シミュレーション装置は、
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件を取得する取得部と、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、該複数のシミュレーション処理を実行する実行環境に応じて決定する決定部とを有する。
【発明の効果】
【０００８】
電波伝搬シミュレーションにおいて、効率的な並列処理を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】電波伝搬シミュレーション装置の適用例を示す図である。
【図２】電波伝搬シミュレーション装置のハードウェア構成の一例を示す図である。
【図３】第１の実施形態に係る電波伝搬シミュレーション装置の機能構成の一例を示す図である。
【図４】第１の並列化方法（移動体に基づく並列化方法）の具体例を示す図である。
【図５】第２の並列化方法（送信機に基づく並列化方法）の具体例を示す図である。
【図６】第３の並列化方法（受信機に基づく並列化方法）の具体例を示す図である。
【図７】第４の並列化方法（パス候補に基づく並列化方法）の具体例を示す図である。
【図８】第１の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
【図９】第１の並列化方法（移動体に基づく並列化方法）が決定された場合の効果を示す図である。
【図１０】第２の並列化方法（送信機に基づく並列化方法）が決定された場合の効果を示す図である。
【図１１】第３の並列化方法（受信機に基づく並列化方法）が決定された場合の効果を示す図である。
【図１２】第５の並列化方法（リンク構造に基づく並列化方法）の具体例を示す図である。
【図１３】第２の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
【図１４】第５の並列化方法（リンク構造に基づく並列化方法）が決定された場合の効果を示す図である。
【図１５】第３の実施形態に係る電波伝搬シミュレーション装置の機能構成の一例を示す図である。
【図１６】第３の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１１】
［第１の実施形態］
＜電波伝搬シミュレーション装置の適用例＞
はじめに、第１の実施形態に係る電波伝搬シミュレーション装置の適用例について説明する。図１は、電波伝搬シミュレーション装置の適用例を示す図である。図１において、電波伝搬シミュレーション装置１００は、様々なシミュレーション条件のもと、所定空間における送信機と受信機との電波伝搬のシミュレーションを行う。
【００１２】
電波伝搬シミュレーション装置１００には、電波伝搬シミュレーションプログラムがインストールされており、当該プログラムが実行されることで、電波伝搬シミュレーション装置１００は、並列化方法決定部１１０、シミュレーション部１２０として機能する。
【００１３】
並列化方法決定部１１０は、情報格納部１３０を参照し、シミュレーション部１２０が所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件を取得する。また、並列化方法決定部１１０は、取得したシミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を決定する。
【００１４】
シミュレーション部１２０は、並列化方法決定部１１０により決定された並列化方法のもとで、複数のシミュレーション処理を実行する。これにより、シミュレーション部１２０では、電波伝搬シミュレーションから、送信機及び受信機の最適な設置位置を探索することができる。
【００１５】
なお、図１に示すように、情報格納部１３０には、例えば、レイアウトモデル１４０、移動体モデル１５０、リンク情報１６０等が格納されている。
【００１６】
レイアウトモデル１４０には、送信機及び受信機が設置される所定空間のレイアウトに関する情報が含まれる。図１の例は、所定空間内に、電波を反射する障害物１４１が配置されていることを示している。
【００１７】
移動体モデル１５０には、所定空間を移動体が移動する場合の移動体の位置を示す情報が含まれる。図１の例は、所定空間を移動体１５１が移動する場合の移動体の位置として、“位置＃１”〜“位置＃１０”が規定されていることを示している。移動体モデル１５０を読み出すことで、移動体１５１の移動先の位置の数（ロケーション数と称す）を取得することができる。
【００１８】
リンク情報１６０には、所定空間に設置される送信機及び受信機の設置位置を示す情報が含まれる。図１の例は、所定空間に３台の送信機（Ｔｘ１〜Ｔｘ３）と、１０台の受信機（Ｒｘ１〜Ｒｘ１０）とが設置されることを示している。このため、送信機と受信機との間のリンクの数は、“３０”となる。
【００１９】
なお、上記説明では、３台の送信機（Ｔｘ１〜Ｔｘ３）を固定して電波伝搬シミュレーションを実行するものとしたが、例えば、１台の送信機を位置を変えながら（Ｔｘ１〜Ｔｘ３で示される３箇所の位置で）電波伝搬シミュレーションを実行してもよい。この場合も、リンク情報１６０と同様の表現となる。
【００２０】
同様に、上記説明では、電波伝搬シミュレーションに際して、１０台の受信機（Ｒｘ１〜Ｒｘ１０）を固定するものとしたが、例えば、２台の受信機を位置を変えながら（Ｒｘ１〜Ｒｘ１０で示される５箇所の位置で）電波伝搬シミュレーションを実行してもよい。この場合も、リンク情報１６０と同様の表現となる。
【００２１】
つまり、リンク情報１６０を読み出すことで、送信機を設置する設置先（候補）の数と、各設置先に設置される送信機の数とを取得することができる（以下、これらの積を送信機の設置数と称す）。また、リンク情報１６０を読み出すことで、受信機を設置する設置先の数と、各設置先に設置される送信機の数とを取得することができる（以下、これらの積を受信機の設置数と称す）。
【００２２】
このように、レイアウトモデル１４０、移動体モデル１５０、リンク情報１６０を読み出すことで、並列化方法決定部１１０では、シミュレーション条件（ロケーション数、送信機の設置数、受信機の設置数）を取得するとともに、
・移動体１５１の移動先の位置ごと、
・各送信機の設置先の位置ごと、
・各受信機の設置先の位置ごと、
の電波のパス候補をそれぞれ算出し、実行すべき複数のシミュレーション処理を導出する。なお、並列化方法決定部１１０では、シミュレーション条件に基づいて導出した、複数のシミュレーション処理を、シミュレーション部１２０に通知する。
【００２３】
＜電波伝搬シミュレーション装置のハードウェア構成＞
次に、電波伝搬シミュレーション装置１００のハードウェア構成について説明する。図２は、電波伝搬シミュレーション装置のハードウェア構成の一例を示す図である。図２に示すように、電波伝搬シミュレーション装置１００は、マルチコアＣＰＵ（Central  Processing  Unit）２０１、ＲＯＭ（Read  Only  Memory）２０２を有する。また、電波伝搬シミュレーション装置１００は、ＲＡＭ（Random  Access  Memory）２０３を有する。なお、マルチコアＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３は、いわゆるコンピュータを形成する。
【００２４】
また、電波伝搬シミュレーション装置１００は、補助記憶装置２０４、操作装置２０５、表示装置２０６、通信装置２０７、ドライブ装置２０８を有する。なお、電波伝搬シミュレーション装置１００の各ハードウェアは、バス２０９を介して相互に接続されている。
【００２５】
マルチコアＣＰＵ２０１は、複数のコアを有し、補助記憶装置２０４にインストールされている各種プログラム（例えば、電波伝搬シミュレーションプログラム等）を実行するデバイスである。
【００２６】
ＲＯＭ２０２は、不揮発性メモリである。ＲＯＭ２０２は、補助記憶装置２０４にインストールされている各種プログラムをマルチコアＣＰＵ２０１が実行するために必要な各種プログラム、データ等を格納する、主記憶デバイスとして機能する。具体的には、ＲＯＭ２０２はＢＩＯＳ（Basic  Input/Output  System）やＥＦＩ（Extensible  Firmware  Interface）等のブートプログラム等を格納する、主記憶デバイスとして機能する。
【００２７】
ＲＡＭ２０３は、ＤＲＡＭ（Dynamic  Random  Access  Memory）やＳＲＡＭ（Static  Random  Access  Memory）等の揮発性メモリである。ＲＡＭ２０３は、補助記憶装置２０４にインストールされている各種プログラムがマルチコアＣＰＵ２０１によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【００２８】
補助記憶装置２０４は、各種プログラムや、各種プログラムが実行される際に用いられる情報を格納する補助記憶デバイスである。例えば、情報格納部１３０は、補助記憶装置２０４において実現される。
【００２９】
操作装置２０５は、電波伝搬シミュレーション装置１００のユーザが電波伝搬シミュレーション装置１００に対して各種指示を入力する際に用いる操作デバイスである。表示装置２０６は、電波伝搬シミュレーション装置１００のユーザに、例えば、電波伝搬シミュレーションの結果を表示する表示デバイスである。通信装置２０７は、不図示のネットワークと接続し、通信を行う通信デバイスである。
【００３０】
ドライブ装置２０８は記録媒体２１０をセットするためのデバイスである。ここでいう記録媒体２１０には、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体２１０には、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【００３１】
なお、補助記憶装置２０４にインストールされる各種プログラムは、例えば、配布された記録媒体２１０がドライブ装置２０８にセットされ、該記録媒体２１０に記録された各種プログラムがドライブ装置２０８により読み出されることでインストールされる。あるいは、補助記憶装置２０４にインストールされる各種プログラムは、通信装置２０７を介してネットワークよりダウンロードされることでインストールされてもよい。
【００３２】
＜電波伝搬シミュレーション装置の機能構成＞
次に、電波伝搬シミュレーション装置１００の機能構成（ここでは、並列化方法決定部１１０の機能構成）の詳細について説明する。
【００３３】
図３は、第１の実施形態に係る電波伝搬シミュレーション装置の機能構成の一例を示す図である。図３に示すように、並列化方法決定部１１０は、入力ファイル読み込み部３０１、シミュレーション条件取得部３０２、実行環境情報取得部３０３、決定部３０４を有する。
【００３４】
入力ファイル読み込み部３０１は、情報格納部１３０に格納されているレイアウトモデル１４０、移動体モデル１５０、リンク情報１６０を読み出し、シミュレーション条件取得部３０２に通知する。
【００３５】
シミュレーション条件取得部３０２は取得部の一例であり、移動体モデル１５０に基づいて、ロケーション数を取得し、リンク情報１６０に基づいて、送信機の設置数及び受信機の設置数を取得する。また、シミュレーション条件取得部３０２は、取得したロケーション数、送信機の設置数、受信機の設置数を決定部３０４に通知する。
【００３６】
また、シミュレーション条件取得部３０２は、レイアウトモデル１４０、移動体モデル１５０、リンク情報１６０に基づいて、実行すべき複数のシミュレーション処理を導出し、シミュレーション部１２０に通知する。
【００３７】
実行環境情報取得部３０３は、複数のシミュレーション処理を実行する実行環境を示す情報として、電波伝搬シミュレーション装置１００が有するマルチコアＣＰＵ２０１のコアの数（「ＣＰＵ数」と称す）を取得し、決定部３０４に通知する。
【００３８】
決定部３０４は、シミュレーション条件取得部３０２より通知された、ロケーション数、送信機の設置数、受信機の設置数と、実行環境情報取得部３０３より通知されたＣＰＵ数とに基づいて、最適な並列化方法を決定する。また、決定部３０４は、決定した並列化方法に基づいて、マルチコアＣＰＵ２０１の各コア（割り当て対象）について、シミュレーション処理の割り当てを決定する。
【００３９】
決定部３０４は、決定した割り当てを、シミュレーション部１２０に通知する。これにより、シミュレーション部１２０では、電波伝搬シミュレーションにおいて実行すべき複数のシミュレーション処理について、最適な並列化方法のもとで効率的な並列処理を実現することが可能になる。この結果、電波伝搬シミュレーションにかかる時間を短縮することができる。
【００４０】
＜並列化方法の具体例＞
次に、並列化方法の具体例について説明する。なお、説明の簡略化のため、以下の各具体例では、下記のシミュレーション条件を前提とする。
・ロケーション数：１０（位置♯１〜位置♯１０）
・送信機の設置数：３（Ｔｘ１〜Ｔｘ３）
・受信機の設置数：１０（Ｒｘ１〜Ｒｘ１０）
・ＣＰＵ数      ：２（ＣＰＵ０、ＣＰＵ１）
・反射面数      ：２０（面１〜面２０）
・反射回数      ：２
【００４１】
また、以下の具体例では、各ＣＰＵ（ＣＰＵ０、ＣＰＵ１）に割り当てるシミュレーション処理のまとまり（並列化可能な処理の単位。スレッドと称す）を、
・ロケーション単位で決定するケース（移動体に基づく並列化方法）、
・送信機単位で決定するケース（送信機に基づく並列化方法）、
・受信機単位で決定するケース（受信機に基づく並列化方法）、
・パス候補単位で決定するケース（パス候補に基づく並列化方法）
の４通りのケースについて説明する。
【００４２】
“移動体に基づく並列化方法”による並列処理が可能なのは、移動体の移動先の位置の伝搬環境が、互いに独立であるからである。また、“送信機に基づく並列化方法”による並列処理が可能なのは、各送信機の各設置先の位置での伝搬計算が、互いに独立であるからである。また、“受信機に基づく並列化方法”による並列処理が可能なのは、各受信機の各設置先の位置の伝搬計算が、互いに独立であるからである。更に、“パス候補に基づく並列化方法”による並列処理が可能なのは、各パス候補の伝搬計算が互いに独立であるからである。
【００４３】
（１）移動体に基づく並列化方法
図４は、第１の並列化方法（移動体に基づく並列化方法）の具体例を示す図である。図４において、符号４１１〜４１５、４１６〜４２０、４１１＿１等は、シミュレーション条件取得部３０２において導出された、複数のシミュレーション処理の一覧を示したものである。
【００４４】
上述したように、シミュレーション処理は、移動体１５１の移動先の位置ごとに導出される。このため、図４に示すように、複数のシミュレーション処理は、少なくともロケーション数分（“位置＃１”〜“位置＃１０”の１０個）、導出される（符号４１１〜４１５、４１６〜４２０）。
【００４５】
また、シミュレーション処理は、移動体１５１の移動先の各位置において、各送信機の設置先の位置ごと、各受信機の設置先の位置ごと（つまり、リンクごと）に導出される。このため、図４に示すように、移動体１５１の移動先の各位置には、送信機の設置数と受信機の設置数との積算値分（“リンク１，１”〜“リンク３，１０”の３０個）のシミュレーション処理が導出される。
【００４６】
なお、“リンク１，１”とは、Ｔｘ１とＲｘ１とを組み合わせたリンクを指し、“リンク３，１０”とは、Ｔｘ３とＲｘ１０とを組み合わせたリンクを指す。
【００４７】
また、シミュレーション処理は、各リンクに含まれる各パス候補について導出される。例えば、反射面数が“２０”で、反射回数が“２”の場合、４０１通りのパス候補が発生するため、４０１通りのシミュレーション処理が導出される。図４において、符号４１１＿１は、“リンク１，１”について発生した４０１通りのパス候補の一部を示したものである。例えば、“Ｔｘ１→面１→Ｒｘ１”は、送信機（“Ｔｘ１”）から送信された電波が、“面１”で１回反射して、受信機（“Ｒｘ１”）にて受信されるパス候補（実行すべきシミュレーション処理の１つ）であることを示している。
【００４８】
なお、符号４１１＿１に示すパス候補群（実行すべき複数のシミュレーション処理）は、図４に示すように、３０通りのリンクそれぞれにおいて導出される（つまり、４２０×３０のシミュレーション処理が導出される）。また、３０通りのリンクは、“位置♯１”〜“位置♯１０”それぞれにおいて発生する（つまり、４０１×３０×１０のシミュレーション処理が導出される）。
【００４９】
ここで、移動体に基づく並列化方法の場合、各ＣＰＵ（ＣＰＵ０、ＣＰＵ１）に割り当てるスレッドを、ロケーション単位で決定する（１または複数のロケーションに対応するシミュレーション処理のまとまりを１つのスレッドとする）。図４の例は、移動先の位置（ロケーション）が“位置♯１”〜“位置♯５”に含まれる複数のシミュレーション処理を、スレッド１として、“ＣＰＵ０”に割り当てた様子を示している。また、図４の例は、ロケーションが“位置♯６”〜“位置♯１０”に含まれる複数のシミュレーション処理を、スレッド２として、“ＣＰＵ１”に割り当てた様子を示している。
【００５０】
図４の例の場合、
・ＣＰＵ０によるスレッド１の処理（位置＃１から位置＃５までの処理）と、
・ＣＰＵ１によるスレッド２の処理（位置＃６から位置＃１０までの処理）と
は並列に行われる。
【００５１】
（２）送信機に基づく並列化方法
図５は、第２の並列化方法（送信機に基づく並列化方法）の具体例を示す図である。図５において、符号４１１〜符号４２０、及び、符号４１１＿１は、図４に示した、符号４１１〜符号４２０、及び、符号４１１＿１と同じである。
【００５２】
送信機に基づく並列化方法の場合、各ＣＰＵ（ＣＰＵ０、ＣＰＵ１）に割り当てるスレッドを、送信機単位で決定する（１または複数の送信機に対応するシミュレーション処理のまとまりを１つのスレッドとする）。図５の例は、ロケーションが“位置＃１”〜“位置＃５”に含まれる複数のシミュレーション処理のうち、送信機（Ｔｘ１、Ｔｘ２）が電波を送信するシミュレーション処理を、スレッド１として、“ＣＰＵ０”に割り当てた様子を示している。また、図５の例は、ロケーションが“位置＃１”〜“位置＃５”に含まれる複数のシミュレーション処理のうち、送信機（Ｔｘ３）が電波を送信するシミュレーション処理を、スレッド２として、“ＣＰＵ１”に割り当てた様子を示している。以下、ロケーションが、“位置＃６”〜“位置＃１０”に含まれるシミュレーション処理についても、同様に、各スレッド（スレッド３、スレッド４）が“ＣＰＵ０”または“ＣＰＵ１”に割り当てられる。
【００５３】
図５の例によれば、ロケーションが“位置＃１”〜“位置＃５”に含まれるシミュレーション処理について、
・ＣＰＵ０による処理（送信機（Ｔｘ１、Ｔｘ２）の処理）と、
・ＣＰＵ１による処理（送信機（Ｔｘ３）の処理）と、
は並列に行われる。
【００５４】
同様に、図５の例によれば、ロケーションが“位置＃６”〜“位置＃１０”に含まれるシミュレーション処理について、
・ＣＰＵ０による処理（送信機（Ｔｘ１、Ｔｘ２）の処理）と、
・ＣＰＵ１による処理（送信機（Ｔｘ３）の処理）と、
は並列に行われる。
【００５５】
（３）受信機に基づく並列化方法
図６は、第３の並列化方法（受信機に基づく並列化方法）の具体例を示す図である。図６において、符号４１１〜符号４２０、及び、符号４１１＿１は、図５に示した、符号４１１〜符号４２０、及び、符号４１１＿１と同じである。
【００５６】
受信機に基づく並列化方法の場合、各ＣＰＵ（ＣＰＵ０、ＣＰＵ１）に割り当てるスレッドを、受信機単位で決定する（１または複数の受信機に対応するシミュレーション処理のまとまりを１つのスレッドとする）。図６の例は、ロケーションが“位置＃１”〜“位置＃５”に含まれる複数のシミュレーション処理のうち、送信機（Ｔｘ１、Ｔｘ２）から受信機（Ｒｘ１）に電波を送信するシミュレーション処理を、スレッド１として、“ＣＰＵ０”に割り当てた様子を示している。
【００５７】
また、図６の例は、ロケーションが“位置＃１”〜“位置＃５”に含まれるシミュレーション処理のうち、送信機（Ｔｘ３）から受信機（Ｒｘ１）に電波を送信するシミュレーション処理を、スレッド２として、“ＣＰＵ１”に割り当てた様子を示している。
【００５８】
以下、送信機（Ｔｘ３）から受信機（Ｒｘ１０）に電波を送信するシミュレーション処理まで、各スレッド（スレッド３、４、・・・１９、２０）が“ＣＰＵ０”または“ＣＰＵ１”に割り当てられる。
【００５９】
同様に、ロケーションが“位置＃６”〜“位置＃１０”に含まれる複数のシミュレーション処理についても、各スレッド（スレッド２１、２２、２３、２４、・・・３９、４０）が、“ＣＰＵ０”または“ＣＰＵ１”に割り当てられる。
【００６０】
図６の例によれば、ロケーションが“位置＃１”〜“位置＃５”に含まれるシミュレーション処理であって、受信機（Ｒｘ１）が受信するシミュレーション処理について、
・ＣＰＵ０による処理（送信機（Ｔｘ１、Ｔｘ２）が送信する処理）と、
・ＣＰＵ１による処理（送信機（Ｔｘ３）が送信する処理）と、
は並列に行われる。
【００６１】
以下、同様に、図６の例によれば、ロケーションが“位置＃１”〜“位置＃５”に含まれるシミュレーション処理であって、受信機（Ｒｘ２〜Ｒｘ１０）が受信するシミュレーション処理について、それぞれ、
・ＣＰＵ０による処理（送信機（Ｔｘ１、Ｔｘ２）が送信する処理）と、
・ＣＰＵ１による処理（送信機（Ｔｘ３）が送信する処理）と、
は並列に行われる。
【００６２】
また、同様に、図６の例によれば、ロケーションが“位置＃６”〜“位置＃１０”に含まれるシミュレーション処理であって、受信機（Ｒｘ１〜Ｒｘ１０）が受信するシミュレーション処理について、それぞれ、
・ＣＰＵ０による処理（送信機（Ｔｘ１、Ｔｘ２）が送信する処理）と、
・ＣＰＵ１による処理（送信機（Ｔｘ３）が送信する処理）と、
は並列に行われる。
【００６３】
（４）パス候補に基づく並列化方法
図７は、第４の並列化方法（パス候補に基づく並列化方法）の具体例を示す図である。図７において、符号４１１〜符号４２０、及び、符号４１１＿１は、図５に示した、符号４１１〜符号４２０、及び、符号４１１＿１と同じである。
【００６４】
パス候補に基づく並列化方法の場合、各ＣＰＵ（ＣＰＵ０、ＣＰＵ１）に割り当てるスレッドを、パス候補単位で決定する（１または複数のパス候補に対応するシミュレーション処理のまとまりを１つのスレッドとする）。図７の例は、リンク１，１に含まれるパス候補のうち、１番目のパス候補のシミュレーション処理を、スレッド１として、“ＣＰＵ０”に割り当てた様子を示している。
【００６５】
また、図７の例は、リンク１，１に含まれるパス候補のうち、２番目のパス候補のシミュレーション処理をスレッド２として、“ＣＰＵ１”に割り当てた様子を示している。以下、４２０番目のパス候補のシミュレーション処理まで、同様に、各スレッドが“ＣＰＵ０”または“ＣＰＵ１”に割り当てられる。
【００６６】
以下、ロケーションが“位置＃１”〜“位置＃１０”に含まれる全てのリンクに含まれる全てのパス候補のシミュレーション処理について、同様に、各スレッドが“ＣＰＵ０”または“ＣＰＵ１”に割り当てられる。
【００６７】
これにより、例えば、リンク１，１に含まれるパス候補のうち、１番目のパス候補のシミュレーション処理と、２番目のパス候補のシミュレーション処理とは、並列に行われる。
【００６８】
＜並列化方法決定処理の流れ＞
次に、並列化方法決定処理の流れについて説明する。第１の実施形態に係る電波伝搬シミュレーション装置１００において、並列化方法決定部１１０の決定部３０４では、複数のシミュレーション処理を実行する実行環境に基づいて、上記具体例を示した４通りの並列化方法の中から、１の並列化方法を決定する。図８は、第１の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
【００６９】
図８に示すように、ステップＳ８０１において、入力ファイル読み込み部３０１は、情報格納部１３０より、移動体モデル１５０を読み出す。また、シミュレーション条件取得部３０２は、移動体モデル１５０に基づいて、ロケーション数を取得し、決定部に通知する。これにより、決定部３０４は、ロケーション数を取得する。
【００７０】
ステップＳ８０２において、入力ファイル読み込み部３０１は、情報格納部１３０より、リンク情報１６０を読み出す。また、シミュレーション条件取得部３０２は、リンク情報１６０に基づいて、送信機の設置数を取得し、決定部３０４に通知する。これにより、決定部３０４は、送信機の設置数を取得する。
【００７１】
ステップＳ８０３において、入力ファイル読み込み部３０１は、情報格納部１３０より、リンク情報１６０を読み出す。また、シミュレーション条件取得部３０２は、リンク情報１６０に基づいて、受信機の設置数を取得し、決定部３０４に通知する。これにより、決定部３０４は、受信機の設置数を取得する。
【００７２】
ステップＳ８０４において、実行環境情報取得部３０３は、ＣＰＵ数を取得し、決定部３０４に通知する。これにより、決定部３０４は、ＣＰＵ数を取得する。
【００７３】
ステップＳ８０５において、決定部３０４は、取得したロケーション数がＣＰＵ数以上であるか否かを判定する。ステップＳ８０５において、取得したロケーション数がＣＰＵ数以上であると判定した場合（ステップＳ８０５においてＹＥＳの場合）、ステップＳ８０６に進む。
【００７４】
ステップＳ８０６において、決定部３０４は、電波伝搬シミュレーションを、移動体に基づく並列化方法により実行することを決定する。
【００７５】
一方、ステップＳ８０５において、取得したロケーション数がＣＰＵ数未満であると判定した場合（ステップＳ８０５においてＮＯの場合）、ステップＳ８０７に進む。
【００７６】
ステップＳ８０７において、決定部３０４は、送信機の設置数がＣＰＵ数以上であるか否かを判定する。ステップＳ８０７において、送信機の設置数がＣＰＵ数以上であると判定した場合（ステップＳ８０７においてＹＥＳの場合）、ステップＳ８０８に進む。
【００７７】
ステップＳ８０８において、決定部３０４は、電波伝搬シミュレーションを、送信機に基づく並列化方法により実行することを決定する。
【００７８】
一方、ステップＳ８０７において、送信機の設置数がＣＰＵ数未満であると判定した場合（ステップＳ８０７においてＮＯの場合）、ステップＳ８０９に進む。
【００７９】
ステップＳ８０９において、決定部３０４は、受信機の設置数がＣＰＵ数以上であるか否かを判定する。ステップＳ８０９において、受信機の設置数がＣＰＵ数以上であると判定した場合（ステップＳ８０９においてＹＥＳの場合）、ステップＳ８１０に進む。
【００８０】
ステップＳ８１０において、決定部３０４は、電波伝搬シミュレーションを、受信機に基づく並列化方法により実行することを決定する。
【００８１】
一方、ステップＳ８０９において、受信機の設置数がＣＰＵ数未満であると判定した場合（ステップＳ８０９においてＮＯの場合）、ステップＳ８１１に進む。
【００８２】
ステップＳ８１１において、決定部３０４は、電波伝搬シミュレーションを、パス候補に基づく並列化方法により実行することを決定する。
【００８３】
以上の並列化方法決定処理により、決定部３０４では、最適な並列化方法を決定することができる。なお、図８のステップＳ８０６、Ｓ８０８、Ｓ８１０、Ｓ８１１においてそれぞれ決定される並列化方法は、ステップＳ８０６→Ｓ８０８→Ｓ８１０→Ｓ８１１の順で、スレッドの数が増えていき、１スレッドあたりに含まれるシミュレーション処理の数が減っていく。つまり、ステップＳ８０６→Ｓ８０８→Ｓ８１０→Ｓ８１１の順で、オーバヘッドの時間が増加する一方で、各ＣＰＵに割り当てるスレッドを均等化することができる。
【００８４】
このように、第１の実施形態に係る電波伝搬シミュレーション装置１００では、効率的な並列処理を実現するために、ＣＰＵ数に応じた並列化方法を決定する。これにより、“オーバヘッドの時間の削減”と“各ＣＰＵへのスレッドの均等な割り当て”とのバランスがとれた、最適な並列化方法を決定することができる。
【００８５】
＜各並列化方法が決定された場合の効果＞
次に、各並列化方法（移動体に基づく並列化方法、送信機に基づく並列化方法、受信機に基づく並列化方法）が決定された場合の効果について説明する。
【００８６】
（１）移動体に基づく並列化方法が決定された場合の効果
はじめに、移動体に基づく並列化方法が決定された場合の効果について説明する。なお、説明にあたっては、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間、及び、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間と対比する。
【００８７】
図９は、第１の並列化方法（移動体に基づく並列化方法）が決定された場合の効果を示す図である。
【００８８】
図９において、符号９１０は、移動体に基づく並列化方法において、各ＣＰＵに割り当てられるスレッドを模式的に示したものである。図４で説明したとおり、移動体に基づく並列化方法の場合、スレッド１とスレッド２が、ＣＰＵ０と、ＣＰＵ１とに割り当てられる。
【００８９】
符号９１１は、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。符号９１１において、網掛け部分は、スレッドの作成や排他制御などのオーバヘッドの時間を表しており、白色部分は、パス候補の生成やパス到達判定に要する時間を表している。
【００９０】
一方、符号９２０は、送信機に基づく並列化方法において、各ＣＰＵに割り当てられるスレッドを模式的に示したものである。図５で説明したとおり、送信機に基づく並列化方法の場合、スレッド１〜スレッド４が、ＣＰＵ０と、ＣＰＵ１とに割り当てられる。
【００９１】
符号９２１は、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。符号９２１において、網掛け部分は、スレッドの作成や排他制御などのオーバヘッドの時間を表しており、白色部分は、パス候補の生成やパス到達判定に要する時間を表している。
【００９２】
一方、符号９３０は、受信機に基づく並列化方法において、各ＣＰＵに割り当てられるスレッドを模式的に示したものである。図６で説明したとおり、受信機に基づく並列化方法の場合、スレッド１〜スレッド４０が、ＣＰＵ０と、ＣＰＵ１とに割り当てられる。
【００９３】
符号９３１は、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。符号９３１において、網掛け部分は、スレッドの作成や排他制御などのオーバヘッドの時間を表しており、白色部分は、パス候補の生成やパス到達判定に要する時間を表している。
【００９４】
符号９１１、９２１、９３１の対比から明らかなように、移動体に基づく並列化方法を用いた場合、送信機に基づく並列化方法及び受信機に基づく並列化方法を用いた場合と比較して、オーバヘッドの時間が少なく、実行時間を短縮することができる。つまり、図９に示すケースでは、移動体に基づく並列化方法が決定されることで、効率的な並列処理が実現され、実行時間を短縮することができる。
【００９５】
（２）送信機に基づく並列化方法が決定された場合の効果
次に、送信機に基づく並列化方法が決定された場合の効果について説明する。なお、説明にあたっては、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間、及び、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間と対比する。
【００９６】
図１０は、第２の並列化方法（送信機に基づく並列化方法）が決定された場合の効果を示す図である。
【００９７】
図１０において、符号９１０、９２０、９３０は、図９で示した符号９１０、９２０、９３０と同じであるため、ここでは、説明を省略する。なお、図１０では、スレッドが割り当てられるＣＰＵが、４個（ＣＰＵ０、ＣＰＵ１、ＣＰＵ２、ＣＰＵ３）である（ＣＰＵ数＝４である）ものとして説明する。
【００９８】
符号１０１１は、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。また、符号１０２１は、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。更に、符号１０３１は、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。
【００９９】
符号１０１１と符号１０２１との対比から明らかなように、符号１０１１の場合、スレッドの数が、ＣＰＵ数より少なく、スレッドが割り当てられないＣＰＵ（図１０の例では、ＣＰＵ２、ＣＰＵ３）が発生する。一方、符号１０２１の場合、スレッドが割り当てられないＣＰＵが発生しない。このため、送信機に基づく並列化方法を用いた場合、移動体に基づく並列化方法を用いた場合と比較して、実行時間を短縮することができる。
【０１００】
また、符号１０２１と符号１０３１との対比から明らかなように、送信機に基づく並列化方法を用いた場合、受信機に基づく並列化方法を用いた場合と比較して、オーバヘッドの時間が少なく、実行時間を短縮することができる。
【０１０１】
つまり、図１０に示すケースでは、送信機に基づく並列化方法が決定されることで、効率的な並列処理が実現され、実行時間を短縮することができる。
【０１０２】
（３）受信機に基づく並列化方法が決定された場合の効果
次に、受信機に基づく並列化方法が決定された場合の効果について説明する。なお、説明にあたっては、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間、及び、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間と対比する。
【０１０３】
図１１は、第３の並列化方法（受信機に基づく並列化方法）が決定された場合の効果を示す図である。
【０１０４】
図１１において、符号９１０、９２０、９３０は、図９で示した符号９１０、９２０、９３０と同じであるため、ここでは、説明を省略する。なお、図１１では、スレッドが割り当てられるＣＰＵが、１０個（ＣＰＵ０〜ＣＰＵ９）である（ＣＰＵ数＝１０である）として説明する。
【０１０５】
符号１１１１は、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。また、符号１１２１は、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。更に、符号１１３１は、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。
【０１０６】
符号１１１１、符号１１２１に示すように、スレッドの数が、ＣＰＵ数より少ない場合、スレッドが割り当てられないＣＰＵ（図１１の例では、ＣＰＵ２〜ＣＰＵ９、または、ＣＰＵ４〜ＣＰＵ９）が発生する。一方、符号１１３１の場合、スレッドが割り当てられないＣＰＵが発生しない。このため、受信機に基づく並列化方法を用いた場合、移動体に基づく並列化方法、及び、送信機に基づく符号化方法を用いた場合と比較して、実行時間を短縮することができる。
【０１０７】
つまり、図１１に示すケースでは、受信機に基づく並列化方法が決定されることで、効率的な並列処理が実現され、実行時間を短縮することができる。
【０１０８】
以上の説明から明らかなように、第１の実施形態に係る電波伝搬シミュレーション装置は、
・電波伝搬のシミュレーション条件として、ロケーション数、送信機の設置数、受信機の設置数を取得する。
・取得したシミュレーション条件を組み合わせることで導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、複数のシミュレーション処理を実行するための実行環境である、ＣＰＵ数に応じて決定する。
【０１０９】
これにより、第１の実施形態によれば、電波伝搬シミュレーションにおいて、効率的な並列処理を実現することが可能になる。この結果、電波伝搬シミュレーションにかかる時間を短縮することができる。
【０１１０】
［第２の実施形態］
上記第１の実施形態では、移動体に基づく並列化方法、送信機に基づく並列化方法、受信機に基づく並列化方法を挙げたが、並列処理を行うための並列化方法はこれに限定されない。例えば、リンク構造に基づく並列化方法を用いてもよい。以下、第２の実施形態について、上記第１の実施形態との相違点を中心に説明する。
【０１１１】
＜リンク構造に基づく並列化方法の具体例＞
図１２は、第５の並列化方法（リンク構造に基づく並列化方法）の具体例を示す図である。図１２において、符号４１１〜符号４２０、及び、符号４１１＿１は、図５に示した、符号４１１〜符号４２０、及び、符号４１１＿１と同じである。
【０１１２】
リンク構造に基づく並列化方法の場合、各ＣＰＵ（ここで、ＣＰＵ０〜ＣＰＵ３）に割り当てるスレッドを、リンク単位で決定する（１つのリンクに対応するシミュレーション処理のまとまりを１つのスレッドとする）。図１２の例は、ロケーションが“位置＃１”〜“位置＃５”に含まれる、送信機と受信機の組み合わせ（３０通りの組み合わせ）それぞれにおいて実行される複数のシミュレーション処理を、スレッドとして、順次、各ＣＰＵに割り当てた様子を示している。
【０１１３】
また、図１２の例は、ロケーションが“位置＃６”〜“位置＃１０”に含まれる、送信機と受信機の組み合わせ（３０通りの組み合わせ）それぞれにおいて実行される複数のシミュレーション処理を、スレッドとして、順次、各ＣＰＵに割り当てた様子を示している。
【０１１４】
図１２の例によれば、ロケーションが“位置＃１”〜“位置＃５”に含まれるシミュレーション処理について、
・ＣＰＵ０による処理（リンク１，１の処理）と、
・ＣＰＵ１による処理（リンク１，２の処理）と、
・ＣＰＵ２による処理（リンク１，３の処理）と、
・ＣＰＵ３による処理（リンク１，４の処理）と、
は並列に行われる。
【０１１５】
同様に、図１２の例によれば、ロケーションが“位置＃１”〜“位置＃５”に含まれるシミュレーション処理について、
・ＣＰＵ０による処理（リンク１，１の処理）と、
・ＣＰＵ１による処理（リンク１，２の処理）と、
・ＣＰＵ２による処理（リンク１，３の処理）と、
・ＣＰＵ３による処理（リンク１，４の処理）と、
は並列に行われる。
【０１１６】
＜並列化方法決定処理の流れ＞
次に、第２の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れについて説明する。図１３は、第２の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
【０１１７】
図１３におけるステップＳ８０１〜Ｓ８０３、Ｓ８０４〜Ｓ８０６、Ｓ８１１の各工程は、図８におけるステップＳ８０１〜Ｓ８０３、Ｓ８０４〜Ｓ８０６、Ｓ８１１の各工程と同じであるため、ここでは説明を省略する。
【０１１８】
ステップＳ１３０１において、決定部３０４は、ステップＳ８０２で取得した送信機の設置数と、ステップＳ８０３で取得した受信機の設置数とに基づいて、リンク数を算出する。
【０１１９】
ステップＳ１３０２において、決定部３０４は、算出したリンク数がＣＰＵ数以上であるか否かを判定する。ステップＳ１３０２において、算出したリンク数がＣＰＵ数以上であると判定した場合（ステップＳ１３０１においてＹＥＳの場合）、ステップＳ１３０３に進む。
【０１２０】
ステップＳ１３０３において、決定部３０４は、電波伝搬シミュレーションを、リンク構造に基づく並列化方法により実行することを決定する。
【０１２１】
一方、ステップＳ１３０２において、算出したリンク数がＣＰＵ数未満であると判定した場合（ステップＳ１３０２においてＮＯの場合）、ステップＳ８１１に進む。
【０１２２】
＜リンク構造に基づく並列化方法が決定された場合の効果＞
次に、リンク構造に基づく並列化方法が決定された場合の効果について説明する。なお、説明にあたっては、上記第１の実施形態で説明した受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間と対比する。
【０１２３】
図１４は、第５の並列化方法（リンク構造に基づく並列化方法）が決定された場合の効果を示す図である。
【０１２４】
図１４において、符号１４１０は、受信機に基づく並列化方法において、各ＣＰＵに割り当てられるスレッドを模式的に示したものである。図６で説明したとおり、受信機に基づく並列化方法の場合、ロケーションが“位置＃１”〜“位置＃５”に含まれるシミュレーション処理について、スレッド１〜スレッド３０が、ＣＰＵ０〜ＣＰＵ３に割り当てられる。
【０１２５】
符号１４１１は、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。
【０１２６】
一方、符号１４２０は、リンク構造に基づく並列化方法において、各ＣＰＵに割り当てられるスレッドを模式的に示したものである。図１２で説明したとおり、リンク構造に基づく並列化方法の場合、ロケーションが“位置＃１”〜“位置＃５”に含まれるシミュレーション処理について、スレッド１〜スレッド３０が、ＣＰＵ０〜ＣＰＵ３に割り当てられる。
【０１２７】
符号１４２１は、リンク構造に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。
【０１２８】
符号１４１１と符号１４２１との対比から明らかなように、受信機に基づく並列化方法の場合、各受信機単位に含まれるスレッドの数（ここでは、リンク数）が“１０”であり、ＣＰＵ数（“４”）の整数倍でない。このため、スレッド１１、スレッド１２は、ＣＰＵ０、ＣＰＵ１にそれぞれ割り当てられることになる。つまり、ＣＰＵ０、ＣＰＵ１にそれぞれ、スレッド９、スレッド１０が割り当てられた際、ＣＰＵ２、ＣＰＵ３には、スレッドが割り当てられない。
【０１２９】
同様に、スレッド２１、スレッド２２は、ＣＰＵ０、ＣＰＵ１にそれぞれ割り当てられることとなり、ＣＰＵ０、ＣＰＵ１にそれぞれスレッド１９、スレッド２０が割り当てられた際、ＣＰＵ２、ＣＰＵ３には、スレッドが割り当てられない。
【０１３０】
一方、リンク構造に基づく並列化方法の場合、リンク単位で各ＣＰＵに割り当てられるため、スレッドが割り当てられないＣＰＵが発生しない。このため、リンク構造に基づく並列化方法を用いた場合、受信機に基づく並列化方法を用いた場合と比較して、実行時間を短縮することができる。
【０１３１】
つまり、図１４のケースでは、リンク構造に基づく並列化方法が決定されることで、効率的な並列処理が実現され、実行時間を短縮することができる。
【０１３２】
以上の説明から明らかなように、第２の実施形態に係る電波伝搬シミュレーション装置は、
・電波伝搬のシミュレーション条件として、ロケーション数、送信機の設置数、受信機の設置数を取得し、送信機の設置数と受信機の設置数とに基づいて、リンク数を算出する。
・取得したシミュレーション条件を組み合わせることで導出される複数のシミュレーション処理を、並列に実行するための並列化方法の１つとして、リンク構造に基づく並列化方法を含む。
【０１３３】
これにより、第２の実施形態によれば、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行する場合と比較して、効率的な並列処理を実現することが可能になる。この結果、電波伝搬シミュレーションにかかる時間を短縮することができる。
【０１３４】
［第３の実施形態］
上記第１及び第２の実施形態では、ＣＰＵ数に基づいて並列化方法を決定するものとして説明した。これに対して、第３の実施形態では、電波伝搬シミュレーションの実行時間を推定し、推定した実行時間に基づいて並列化方法を決定する。以下、第３の実施形態について、上記第１及び第２の実施形態との相違点を中心に説明する。
【０１３５】
＜電波伝搬シミュレーション装置の機能構成＞
はじめに、第３の実施形態に係る電波伝搬シミュレーション装置１００の並列化方法決定部の機能構成について説明する。図１５は、第３の実施形態に係る電波伝搬シミュレーション装置の機能構成の一例を示す図である。図３との相違点は、図１５の場合、並列化方法決定部１５００が、１リンク実行時間測定部１５０１、スレッド生成時間測定部１５０２、排他制御実行時間測定部１５０３、処理時間推定部１５０４を有する点である。
【０１３６】
１リンク実行時間測定部１５０１は、指定された反射回数、回折回数に基づいて、１リンクに含まれる複数のシミュレーション処理を実行するのにかかる実行時間（ｔ）を測定し、処理時間推定部１５０４に通知する。
【０１３７】
スレッド生成時間測定部１５０２は、スレッドを生成するのに要する時間（createThreadTime）を測定し、処理時間推定部１５０４に通知する。
【０１３８】
排他制御実行時間測定部１５０３は、排他制御を実行するのに要する時間（mutexTime）を測定し、処理時間推定部１５０４に通知する。
【０１３９】
処理時間推定部１５０４は推定部の一例であり、各並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ）を推定する。処理時間推定部１５０４は、実行時間として、
・各リンクを逐次処理することで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ０）、
・パス候補に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ１）、
・受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ２）、
・送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ３）、
・移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ４）、
を推定する。
【０１４０】
なお、処理時間推定部１５０４では、下式（式１）に基づいて、逐次処理により電波伝搬シミュレーション処理を実行した場合の実行時間（Ｔ０）を推定（算出）する。
【０１４１】
【数１】
2020191595.tif 000003
【０１４２】
なお、ＬｏｃａｔｉｏｎＮｏはロケーション数を、ＴｘＮｏは送信機の設置数を、ＲｘＮｏは受信機の設置数をそれぞれ表す。
【０１４３】
また、処理時間推定部１５０４では、下式（式２）に基づいて、パス候補に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ１）を推定（算出）する。
【０１４４】
【数２】
2020191595.tif 000004
【０１４５】
なお、ＴｈｒｅａｄＮｏは、ＣＰＵ数を指すものとする。
【０１４６】
また、処理時間推定部１５０４は、下式（式３）に基づいて、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ２）を推定（算出）する。
【０１４７】
【数３】
2020191595.tif 000005
【０１４８】
また、処理時間推定部１５０４は、下式（式４）に基づいて、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ３）を推定（算出）する。
【０１４９】
【数４】
2020191595.tif 000006
【０１５０】
また、処理時間推定部１５０４は、下式（式５）に基づいて、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ４）を推定（算出）する。
【０１５１】
【数５】
2020191595.tif 000007
【０１５２】
＜並列化方法決定処理の流れ＞
次に、第３の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れについて説明する。図１６は、第３の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
【０１５３】
図１６におけるステップＳ８０１〜Ｓ８０４の各工程は、図８におけるステップＳ８０１〜Ｓ８０４の各工程と同じであるため、ここでは説明を省略する。
【０１５４】
ステップＳ１６０１において、１リンク実行時間測定部１５０１は、電波伝搬シミュレーション装置１００のユーザにより指定された反射回数を取得する。また、ステップＳ１６０２において、１リンク実行時間測定部１５０１は、電波伝搬シミュレーション装置１００のユーザにより指定された回折回数を取得する。更に、ステップＳ１６０３において、１リンク実行時間測定部１５０１は、電波伝搬シミュレーション装置１００のユーザにより指定された透過回数を取得する。
【０１５５】
ステップＳ１６０４において、１リンク実行時間測定部１５０１は、取得した反射回数、回折回数のもと、１リンクあたりの実行時間を測定する。
【０１５６】
ステップＳ１６０５において、スレッド生成時間測定部１５０２は、スレッドの生成に要する時間を測定する。
【０１５７】
ステップＳ１６０６において、排他制御実行時間測定部１５０３は、排他制御の実行時間を測定する。
【０１５８】
ステップＳ１６０７において、処理時間推定部１５０４は、各リンクを逐次処理することで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ０）を推定（算出）する。
【０１５９】
ステップＳ１６０８において、処理時間推定部１５０４は、パス候補に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ１）を推定（算出）する。
【０１６０】
ステップＳ１６０９において、処理時間推定部１５０４は、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ２）を推定（算出）する。
【０１６１】
ステップＳ１６１０において、処理時間推定部１５０４は、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ３）を推定（算出）する。
【０１６２】
ステップＳ１６１１において、処理時間推定部１５０４は、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間（Ｔ４）を推定（算出）する。
【０１６３】
ステップＳ１６１２において、決定部３０４は、処理時間推定部１５０４において推定（算出）された実行時間（Ｔ０〜Ｔ４）の中から、実行時間が最小となる並列化方法を決定する。
【０１６４】
以上の説明から明らかなように、第３の実施形態に係る電波伝搬シミュレーション装置は、
・電波伝搬のシミュレーション条件として、ロケーション数、送信機の設置数、受信機の設置数、反射回数、回折回数、透過回数を取得する。
・電波伝搬シミュレーションの実行時間を推定（算出）するのに用いるパラメータ（１リンク実行時間、スレッド生成時間、排他制御実行時間）を測定する。
・取得したシミュレーション条件を組み合わせることで導出される複数のシミュレーション処理を、並列に実行するための各並列化方法を用いた場合の、実行時間を推定する。
・実行時間が最小となる並列化方法を決定する。
【０１６５】
これにより、第３の実施形態によれば、電波伝搬シミュレーションにおいて、効率的な並列処理を実現することが可能になる。この結果、電波伝搬シミュレーションにかかる時間を短縮することができる。
【０１６６】
［その他の実施形態］
上記第１の実施形態では、並列化方法決定処理（図８）において、送信機の設置数とＣＰＵ数とを対比した後に（ステップＳ８０７）、受信機の設置数とＣＰＵ数とを対比した（ステップＳ８０９）。しかしながら、対比する順序はこれに限定されず、受信機の設置数とＣＰＵ数とを対比した後に、送信機の設置数とＣＰＵ数とを対比してもよい。
【０１６７】
上記第３の実施形態では、電波伝搬シミュレーションの実行時間を推定（算出）するのに用いるパラメータを測定するものとして説明した。しかしながら、測定する代わりに、予めテーブルに保持しておき、電波伝搬シミュレーションの実行時間を推定（算出）する際に、該テーブルから読み出すようにしてもよい。
【０１６８】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件を取得する取得部と、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、該複数のシミュレーション処理を実行する実行環境に応じて決定する決定部と
を有することを特徴とする電波伝搬シミュレーション装置。
（付記２）
前記取得部は、前記シミュレーション条件として、
前記所定空間を移動体が移動する場合の移動先の位置の数と、
前記所定空間に前記送信機を設置する場合の設置先の数と、各設置先に設置される前記送信機の数とに基づいて導出される、前記送信機の設置数と、
前記所定空間に前記受信機を設置する場合の設置先の数と、各設置先に設置される前記受信機の数とに基づいて導出される、前記受信機の設置数と
を取得することを特徴とする付記１に記載の電波伝搬シミュレーション装置。
（付記３）
前記決定部は、前記実行環境を示す情報である前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、前記取得部が取得した、前記移動先の位置の数、前記送信機の設置数、前記受信機の設置数の少なくともいずれか１つとを対比することで、前記並列化方法を決定することを特徴とする付記２に記載の電波伝搬シミュレーション装置。
（付記４）
前記決定部は、
前記送信機の設置数と、前記受信機の設置数とに基づいて、前記送信機と前記受信機との間のリンク数を算出し、
前記実行環境を示す情報である、前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、算出した前記リンク数とを対比することで、前記並列化方法を決定することを特徴とする付記２に記載の電波伝搬シミュレーション装置。
（付記５）
それぞれの並列化方法に基づいて、前記複数のシミュレーション処理を実行した場合の実行時間を推定する推定部を更に有し、
前記決定部は、前記実行時間が最小となる並列化方法を決定することを特徴とする付記１に記載の電波伝搬シミュレーション装置。
（付記６）
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件を取得し、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、該複数のシミュレーション処理を実行する実行環境に応じて決定する、
処理をコンピュータに実行させるための電波伝搬シミュレーションプログラム。
【０１６９】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０１７０】
１００              ：電波伝搬シミュレーション装置
１１０              ：並列化方法決定部
１２０              ：シミュレーション部
３０１              ：入力ファイル読み込み部
３０２              ：シミュレーション条件取得部
３０３              ：実行環境情報取得部
３０４              ：決定部
１５００            ：並列化方法決定部
１５０１            ：１リンク実行時間測定部
１５０２            ：スレッド生成時間測定部
１５０３            ：排他制御実行時間測定部
１５０４            ：処理時間推定部
【図１】
2020191595.tif 000008
【図２】
2020191595.tif 000009
【図３】
2020191595.tif 000010
【図４】
2020191595.tif 000011
【図５】
2020191595.tif 000012
【図６】
2020191595.tif 000013
【図７】
2020191595.tif 000014
【図８】
2020191595.tif 000015
【図９】
2020191595.tif 000016
【図１０】
2020191595.tif 000017
【図１１】
2020191595.tif 000018
【図１２】
2020191595.tif 000019
【図１３】
2020191595.tif 000020
【図１４】
2020191595.tif 000021
【図１５】
2020191595.tif 000022
【図１６】
2020191595.tif 000023