IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7272109電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法
<>
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図1
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図2
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図3
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図4
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図5
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図6
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図7
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図8
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図9
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図10
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図11
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図12
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図13
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図14
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図15
  • 特許-電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-01
(45)【発行日】2023-05-12
(54)【発明の名称】電波伝搬シミュレーション装置、電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法
(51)【国際特許分類】
   H04B 17/391 20150101AFI20230502BHJP
   H04W 24/06 20090101ALI20230502BHJP
   G01R 29/08 20060101ALI20230502BHJP
【FI】
H04B17/391
H04W24/06
G01R29/08 B
G01R29/08 Z
【請求項の数】 6
(21)【出願番号】P 2019097113
(22)【出願日】2019-05-23
(65)【公開番号】P2020191595
(43)【公開日】2020-11-26
【審査請求日】2022-02-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】山内 宏真
【審査官】対馬 英明
(56)【参考文献】
【文献】特開2004-201269(JP,A)
【文献】特開2019-012875(JP,A)
【文献】特開2004-294133(JP,A)
【文献】特開2015-228186(JP,A)
【文献】特開2004-254250(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 1/60
H04B 3/46-3/493
H04B 17/00-17/40
H04B 7/24-7/26
H04W 4/00-99/00
G01R 29/00-29/26
(57)【特許請求の範囲】
【請求項1】
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件として、
前記所定空間を、前記電波伝搬に影響を与える移動体が移動する場合の移動先の位置の数と、
前記所定空間に前記送信機を設置する場合の設置先の数と、各設置先に設置される前記送信機の数とに基づいて導出される、前記送信機の設置数と、
前記所定空間に前記受信機を設置する場合の設置先の数と、各設置先に設置される前記受信機の数とに基づいて導出される、前記受信機の設置数と
を取得する取得部と、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、前記取得部が取得した、前記移動先の位置の数、前記送信機の設置数、前記受信機の設置数の少なくとも1つとを対比することで、決定する決定部と
を有することを特徴とする電波伝搬シミュレーション装置。
【請求項2】
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件として、
前記所定空間に前記送信機を設置する場合の設置先の数と、各設置先に設置される前記送信機の数とに基づいて導出される、前記送信機の設置数と、
前記所定空間に前記受信機を設置する場合の設置先の数と、各設置先に設置される前記受信機の数とに基づいて導出される、前記受信機の設置数と
を取得する取得部と、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を決定する決定部と、を有し、
前記決定部は、前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、取得された前記送信機の設置数と前記受信機の設置数とに基づいて算出される、前記送信機と前記受信機との間のリンク数とを対比することで、前記並列化方法を決定する
ことを特徴とする電波伝搬シミュレーション装置。
【請求項3】
それぞれの並列化方法に基づいて、前記複数のシミュレーション処理を実行した場合の実行時間を推定する推定部を更に有し、
前記決定部は、前記実行時間が最小となる並列化方法を決定することを特徴とする請求項1または請求項2に記載の電波伝搬シミュレーション装置。
【請求項4】
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件として、
前記所定空間を、前記電波伝搬に影響を与える移動体が移動する場合の移動先の位置の数と、
前記所定空間に前記送信機を設置する場合の設置先の数と、各設置先に設置される前記送信機の数とに基づいて導出される、前記送信機の設置数と、
前記所定空間に前記受信機を設置する場合の設置先の数と、各設置先に設置される前記受信機の数とに基づいて導出される、前記受信機の設置数と
を取得し、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、取得された前記移動先の位置の数、前記送信機の設置数、前記受信機の設置数の少なくとも1つとを対比することで、決定する、
処理をコンピュータに実行させるための電波伝搬シミュレーションプログラム。
【請求項5】
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件として、
前記所定空間に前記送信機を設置する場合の設置先の数と、各設置先に設置される前記送信機の数とに基づいて導出される、前記送信機の設置数と、
前記所定空間に前記受信機を設置する場合の設置先の数と、各設置先に設置される前記受信機の数とに基づいて導出される、前記受信機の設置数と
を取得し、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を決定する、
処理をコンピュータに実行させ、
前記決定する処理は、前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、取得された前記送信機の設置数と前記受信機の設置数とに基づいて算出される、前記送信機と前記受信機との間のリンク数とを対比することで、前記並列化方法を決定する、電波伝搬シミュレーションプログラム。
【請求項6】
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件として、
前記所定空間を、前記電波伝搬に影響を与える移動体が移動する場合の移動先の位置の数と、
前記所定空間に前記送信機を設置する場合の設置先の数と、各設置先に設置される前記送信機の数とに基づいて導出される、前記送信機の設置数と、
前記所定空間に前記受信機を設置する場合の設置先の数と、各設置先に設置される前記受信機の数とに基づいて導出される、前記受信機の設置数と
を取得し、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、取得された前記移動先の位置の数、前記送信機の設置数、前記受信機の設置数の少なくとも1つとを対比することで、決定する、
処理をコンピュータが実行する電波伝搬シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電波伝搬シミュレーション装置電波伝搬シミュレーションプログラム及び電波伝搬シミュレーション方法に関する。
【背景技術】
【0002】
所定空間に複数のセンサを設置し、無線通信を介してデータ収集を行うIoTシステムが普及している。一般に、無線通信を行う送信機(例えば、センサに内蔵された送信機)と受信機(例えば、Gateway装置)とを所定空間に設置する場合、予め、電波伝搬シミュレーションを実行し、最適な設置位置の探索を行う。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2004-294133号公報
【文献】特開2015-228186号公報
【文献】特開2004-254250号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方で、電波伝搬シミュレーションにおけるシミュレーション条件には、膨大な数の組み合わせがあり、各組み合わせについて、逐次、シミュレーション処理を実行したのでは(逐次処理を実行したのでは)、時間がかかる。
【0005】
これに対して、並列にシミュレーション処理を実行することで(並列処理を実行することで)、電波伝搬シミュレーションにかかる時間を短縮することができる。加えて、当該並列処理を効率的に行うことで、更に時間を短縮することが期待できる。
【0006】
一つの側面では、電波伝搬シミュレーションにおいて、効率的な並列処理を実現することを目的としている。
【課題を解決するための手段】
【0007】
一態様によれば、電波伝搬シミュレーション装置は、
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件として、
前記所定空間を、前記電波伝搬に影響を与える移動体が移動する場合の移動先の位置の数と、
前記所定空間に前記送信機を設置する場合の設置先の数と、各設置先に設置される前記送信機の数とに基づいて導出される、前記送信機の設置数と、
前記所定空間に前記受信機を設置する場合の設置先の数と、各設置先に設置される前記受信機の数とに基づいて導出される、前記受信機の設置数と
を取得する取得部と、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、前記取得部が取得した、前記移動先の位置の数、前記送信機の設置数、前記受信機の設置数の少なくとも1つとを対比することで、決定する決定部とを有する。
【発明の効果】
【0008】
電波伝搬シミュレーションにおいて、効率的な並列処理を実現することができる。
【図面の簡単な説明】
【0009】
図1】電波伝搬シミュレーション装置の適用例を示す図である。
図2】電波伝搬シミュレーション装置のハードウェア構成の一例を示す図である。
図3】第1の実施形態に係る電波伝搬シミュレーション装置の機能構成の一例を示す図である。
図4】第1の並列化方法(移動体に基づく並列化方法)の具体例を示す図である。
図5】第2の並列化方法(送信機に基づく並列化方法)の具体例を示す図である。
図6】第3の並列化方法(受信機に基づく並列化方法)の具体例を示す図である。
図7】第4の並列化方法(パス候補に基づく並列化方法)の具体例を示す図である。
図8】第1の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
図9】第1の並列化方法(移動体に基づく並列化方法)が決定された場合の効果を示す図である。
図10】第2の並列化方法(送信機に基づく並列化方法)が決定された場合の効果を示す図である。
図11】第3の並列化方法(受信機に基づく並列化方法)が決定された場合の効果を示す図である。
図12】第5の並列化方法(リンク構造に基づく並列化方法)の具体例を示す図である。
図13】第2の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
図14】第5の並列化方法(リンク構造に基づく並列化方法)が決定された場合の効果を示す図である。
図15】第3の実施形態に係る電波伝搬シミュレーション装置の機能構成の一例を示す図である。
図16】第3の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【0011】
[第1の実施形態]
<電波伝搬シミュレーション装置の適用例>
はじめに、第1の実施形態に係る電波伝搬シミュレーション装置の適用例について説明する。図1は、電波伝搬シミュレーション装置の適用例を示す図である。図1において、電波伝搬シミュレーション装置100は、様々なシミュレーション条件のもと、所定空間における送信機と受信機との電波伝搬のシミュレーションを行う。
【0012】
電波伝搬シミュレーション装置100には、電波伝搬シミュレーションプログラムがインストールされており、当該プログラムが実行されることで、電波伝搬シミュレーション装置100は、並列化方法決定部110、シミュレーション部120として機能する。
【0013】
並列化方法決定部110は、情報格納部130を参照し、シミュレーション部120が所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件を取得する。また、並列化方法決定部110は、取得したシミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を決定する。
【0014】
シミュレーション部120は、並列化方法決定部110により決定された並列化方法のもとで、複数のシミュレーション処理を実行する。これにより、シミュレーション部120では、電波伝搬シミュレーションから、送信機及び受信機の最適な設置位置を探索することができる。
【0015】
なお、図1に示すように、情報格納部130には、例えば、レイアウトモデル140、移動体モデル150、リンク情報160等が格納されている。
【0016】
レイアウトモデル140には、送信機及び受信機が設置される所定空間のレイアウトに関する情報が含まれる。図1の例は、所定空間内に、電波を反射する障害物141が配置されていることを示している。
【0017】
移動体モデル150には、所定空間を移動体が移動する場合の移動体の位置を示す情報が含まれる。図1の例は、所定空間を移動体151が移動する場合の移動体の位置として、“位置#1”~“位置#10”が規定されていることを示している。移動体モデル150を読み出すことで、移動体151の移動先の位置の数(ロケーション数と称す)を取得することができる。
【0018】
リンク情報160には、所定空間に設置される送信機及び受信機の設置位置を示す情報が含まれる。図1の例は、所定空間に3台の送信機(Tx1~Tx3)と、10台の受信機(Rx1~Rx10)とが設置されることを示している。このため、送信機と受信機との間のリンクの数は、“30”となる。
【0019】
なお、上記説明では、3台の送信機(Tx1~Tx3)を固定して電波伝搬シミュレーションを実行するものとしたが、例えば、1台の送信機を位置を変えながら(Tx1~Tx3で示される3箇所の位置で)電波伝搬シミュレーションを実行してもよい。この場合も、リンク情報160と同様の表現となる。
【0020】
同様に、上記説明では、電波伝搬シミュレーションに際して、10台の受信機(Rx1~Rx10)を固定するものとしたが、例えば、2台の受信機を位置を変えながら(Rx1~Rx10で示される5箇所の位置で)電波伝搬シミュレーションを実行してもよい。この場合も、リンク情報160と同様の表現となる。
【0021】
つまり、リンク情報160を読み出すことで、送信機を設置する設置先(候補)の数と、各設置先に設置される送信機の数とを取得することができる(以下、これらの積を送信機の設置数と称す)。また、リンク情報160を読み出すことで、受信機を設置する設置先の数と、各設置先に設置される送信機の数とを取得することができる(以下、これらの積を受信機の設置数と称す)。
【0022】
このように、レイアウトモデル140、移動体モデル150、リンク情報160を読み出すことで、並列化方法決定部110では、シミュレーション条件(ロケーション数、送信機の設置数、受信機の設置数)を取得するとともに、
・移動体151の移動先の位置ごと、
・各送信機の設置先の位置ごと、
・各受信機の設置先の位置ごと、
の電波のパス候補をそれぞれ算出し、実行すべき複数のシミュレーション処理を導出する。なお、並列化方法決定部110では、シミュレーション条件に基づいて導出した、複数のシミュレーション処理を、シミュレーション部120に通知する。
【0023】
<電波伝搬シミュレーション装置のハードウェア構成>
次に、電波伝搬シミュレーション装置100のハードウェア構成について説明する。図2は、電波伝搬シミュレーション装置のハードウェア構成の一例を示す図である。図2に示すように、電波伝搬シミュレーション装置100は、マルチコアCPU(Central Processing Unit)201、ROM(Read Only Memory)202を有する。また、電波伝搬シミュレーション装置100は、RAM(Random Access Memory)203を有する。なお、マルチコアCPU201、ROM202、RAM203は、いわゆるコンピュータを形成する。
【0024】
また、電波伝搬シミュレーション装置100は、補助記憶装置204、操作装置205、表示装置206、通信装置207、ドライブ装置208を有する。なお、電波伝搬シミュレーション装置100の各ハードウェアは、バス209を介して相互に接続されている。
【0025】
マルチコアCPU201は、複数のコアを有し、補助記憶装置204にインストールされている各種プログラム(例えば、電波伝搬シミュレーションプログラム等)を実行するデバイスである。
【0026】
ROM202は、不揮発性メモリである。ROM202は、補助記憶装置204にインストールされている各種プログラムをマルチコアCPU201が実行するために必要な各種プログラム、データ等を格納する、主記憶デバイスとして機能する。具体的には、ROM202はBIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラム等を格納する、主記憶デバイスとして機能する。
【0027】
RAM203は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリである。RAM203は、補助記憶装置204にインストールされている各種プログラムがマルチコアCPU201によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【0028】
補助記憶装置204は、各種プログラムや、各種プログラムが実行される際に用いられる情報を格納する補助記憶デバイスである。例えば、情報格納部130は、補助記憶装置204において実現される。
【0029】
操作装置205は、電波伝搬シミュレーション装置100のユーザが電波伝搬シミュレーション装置100に対して各種指示を入力する際に用いる操作デバイスである。表示装置206は、電波伝搬シミュレーション装置100のユーザに、例えば、電波伝搬シミュレーションの結果を表示する表示デバイスである。通信装置207は、不図示のネットワークと接続し、通信を行う通信デバイスである。
【0030】
ドライブ装置208は記録媒体210をセットするためのデバイスである。ここでいう記録媒体210には、CD-ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体210には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【0031】
なお、補助記憶装置204にインストールされる各種プログラムは、例えば、配布された記録媒体210がドライブ装置208にセットされ、該記録媒体210に記録された各種プログラムがドライブ装置208により読み出されることでインストールされる。あるいは、補助記憶装置204にインストールされる各種プログラムは、通信装置207を介してネットワークよりダウンロードされることでインストールされてもよい。
【0032】
<電波伝搬シミュレーション装置の機能構成>
次に、電波伝搬シミュレーション装置100の機能構成(ここでは、並列化方法決定部110の機能構成)の詳細について説明する。
【0033】
図3は、第1の実施形態に係る電波伝搬シミュレーション装置の機能構成の一例を示す図である。図3に示すように、並列化方法決定部110は、入力ファイル読み込み部301、シミュレーション条件取得部302、実行環境情報取得部303、決定部304を有する。
【0034】
入力ファイル読み込み部301は、情報格納部130に格納されているレイアウトモデル140、移動体モデル150、リンク情報160を読み出し、シミュレーション条件取得部302に通知する。
【0035】
シミュレーション条件取得部302は取得部の一例であり、移動体モデル150に基づいて、ロケーション数を取得し、リンク情報160に基づいて、送信機の設置数及び受信機の設置数を取得する。また、シミュレーション条件取得部302は、取得したロケーション数、送信機の設置数、受信機の設置数を決定部304に通知する。
【0036】
また、シミュレーション条件取得部302は、レイアウトモデル140、移動体モデル150、リンク情報160に基づいて、実行すべき複数のシミュレーション処理を導出し、シミュレーション部120に通知する。
【0037】
実行環境情報取得部303は、複数のシミュレーション処理を実行する実行環境を示す情報として、電波伝搬シミュレーション装置100が有するマルチコアCPU201のコアの数(「CPU数」と称す)を取得し、決定部304に通知する。
【0038】
決定部304は、シミュレーション条件取得部302より通知された、ロケーション数、送信機の設置数、受信機の設置数と、実行環境情報取得部303より通知されたCPU数とに基づいて、最適な並列化方法を決定する。また、決定部304は、決定した並列化方法に基づいて、マルチコアCPU201の各コア(割り当て対象)について、シミュレーション処理の割り当てを決定する。
【0039】
決定部304は、決定した割り当てを、シミュレーション部120に通知する。これにより、シミュレーション部120では、電波伝搬シミュレーションにおいて実行すべき複数のシミュレーション処理について、最適な並列化方法のもとで効率的な並列処理を実現することが可能になる。この結果、電波伝搬シミュレーションにかかる時間を短縮することができる。
【0040】
<並列化方法の具体例>
次に、並列化方法の具体例について説明する。なお、説明の簡略化のため、以下の各具体例では、下記のシミュレーション条件を前提とする。
・ロケーション数:10(位置♯1~位置♯10)
・送信機の設置数:3(Tx1~Tx3)
・受信機の設置数:10(Rx1~Rx10)
・CPU数 :2(CPU0、CPU1)
・反射面数 :20(面1~面20)
・反射回数 :2
【0041】
また、以下の具体例では、各CPU(CPU0、CPU1)に割り当てるシミュレーション処理のまとまり(並列化可能な処理の単位。スレッドと称す)を、
・ロケーション単位で決定するケース(移動体に基づく並列化方法)、
・送信機単位で決定するケース(送信機に基づく並列化方法)、
・受信機単位で決定するケース(受信機に基づく並列化方法)、
・パス候補単位で決定するケース(パス候補に基づく並列化方法)
の4通りのケースについて説明する。
【0042】
“移動体に基づく並列化方法”による並列処理が可能なのは、移動体の移動先の位置の伝搬環境が、互いに独立であるからである。また、“送信機に基づく並列化方法”による並列処理が可能なのは、各送信機の各設置先の位置での伝搬計算が、互いに独立であるからである。また、“受信機に基づく並列化方法”による並列処理が可能なのは、各受信機の各設置先の位置の伝搬計算が、互いに独立であるからである。更に、“パス候補に基づく並列化方法”による並列処理が可能なのは、各パス候補の伝搬計算が互いに独立であるからである。
【0043】
(1)移動体に基づく並列化方法
図4は、第1の並列化方法(移動体に基づく並列化方法)の具体例を示す図である。図4において、符号411~415、416~420、411_1等は、シミュレーション条件取得部302において導出された、複数のシミュレーション処理の一覧を示したものである。
【0044】
上述したように、シミュレーション処理は、移動体151の移動先の位置ごとに導出される。このため、図4に示すように、複数のシミュレーション処理は、少なくともロケーション数分(“位置#1”~“位置#10”の10個)、導出される(符号411~415、416~420)。
【0045】
また、シミュレーション処理は、移動体151の移動先の各位置において、各送信機の設置先の位置ごと、各受信機の設置先の位置ごと(つまり、リンクごと)に導出される。このため、図4に示すように、移動体151の移動先の各位置には、送信機の設置数と受信機の設置数との積算値分(“リンク1,1”~“リンク3,10”の30個)のシミュレーション処理が導出される。
【0046】
なお、“リンク1,1”とは、Tx1とRx1とを組み合わせたリンクを指し、“リンク3,10”とは、Tx3とRx10とを組み合わせたリンクを指す。
【0047】
また、シミュレーション処理は、各リンクに含まれる各パス候補について導出される。例えば、反射面数が“20”で、反射回数が“2”の場合、401通りのパス候補が発生するため、401通りのシミュレーション処理が導出される。図4において、符号411_1は、“リンク1,1”について発生した401通りのパス候補の一部を示したものである。例えば、“Tx1→面1→Rx1”は、送信機(“Tx1”)から送信された電波が、“面1”で1回反射して、受信機(“Rx1”)にて受信されるパス候補(実行すべきシミュレーション処理の1つ)であることを示している。
【0048】
なお、符号411_1に示すパス候補群(実行すべき複数のシミュレーション処理)は、図4に示すように、30通りのリンクそれぞれにおいて導出される(つまり、420×30のシミュレーション処理が導出される)。また、30通りのリンクは、“位置♯1”~“位置♯10”それぞれにおいて発生する(つまり、401×30×10のシミュレーション処理が導出される)。
【0049】
ここで、移動体に基づく並列化方法の場合、各CPU(CPU0、CPU1)に割り当てるスレッドを、ロケーション単位で決定する(1または複数のロケーションに対応するシミュレーション処理のまとまりを1つのスレッドとする)。図4の例は、移動先の位置(ロケーション)が“位置♯1”~“位置♯5”に含まれる複数のシミュレーション処理を、スレッド1として、“CPU0”に割り当てた様子を示している。また、図4の例は、ロケーションが“位置♯6”~“位置♯10”に含まれる複数のシミュレーション処理を、スレッド2として、“CPU1”に割り当てた様子を示している。
【0050】
図4の例の場合、
・CPU0によるスレッド1の処理(位置#1から位置#5までの処理)と、
・CPU1によるスレッド2の処理(位置#6から位置#10までの処理)と
は並列に行われる。
【0051】
(2)送信機に基づく並列化方法
図5は、第2の並列化方法(送信機に基づく並列化方法)の具体例を示す図である。図5において、符号411~符号420、及び、符号411_1は、図4に示した、符号411~符号420、及び、符号411_1と同じである。
【0052】
送信機に基づく並列化方法の場合、各CPU(CPU0、CPU1)に割り当てるスレッドを、送信機単位で決定する(1または複数の送信機に対応するシミュレーション処理のまとまりを1つのスレッドとする)。図5の例は、ロケーションが“位置#1”~“位置#5”に含まれる複数のシミュレーション処理のうち、送信機(Tx1、Tx2)が電波を送信するシミュレーション処理を、スレッド1として、“CPU0”に割り当てた様子を示している。また、図5の例は、ロケーションが“位置#1”~“位置#5”に含まれる複数のシミュレーション処理のうち、送信機(Tx3)が電波を送信するシミュレーション処理を、スレッド2として、“CPU1”に割り当てた様子を示している。以下、ロケーションが、“位置#6”~“位置#10”に含まれるシミュレーション処理についても、同様に、各スレッド(スレッド3、スレッド4)が“CPU0”または“CPU1”に割り当てられる。
【0053】
図5の例によれば、ロケーションが“位置#1”~“位置#5”に含まれるシミュレーション処理について、
・CPU0による処理(送信機(Tx1、Tx2)の処理)と、
・CPU1による処理(送信機(Tx3)の処理)と、
は並列に行われる。
【0054】
同様に、図5の例によれば、ロケーションが“位置#6”~“位置#10”に含まれるシミュレーション処理について、
・CPU0による処理(送信機(Tx1、Tx2)の処理)と、
・CPU1による処理(送信機(Tx3)の処理)と、
は並列に行われる。
【0055】
(3)受信機に基づく並列化方法
図6は、第3の並列化方法(受信機に基づく並列化方法)の具体例を示す図である。図6において、符号411~符号420、及び、符号411_1は、図5に示した、符号411~符号420、及び、符号411_1と同じである。
【0056】
受信機に基づく並列化方法の場合、各CPU(CPU0、CPU1)に割り当てるスレッドを、受信機単位で決定する(1または複数の受信機に対応するシミュレーション処理のまとまりを1つのスレッドとする)。図6の例は、ロケーションが“位置#1”~“位置#5”に含まれる複数のシミュレーション処理のうち、送信機(Tx1、Tx2)から受信機(Rx1)に電波を送信するシミュレーション処理を、スレッド1として、“CPU0”に割り当てた様子を示している。
【0057】
また、図6の例は、ロケーションが“位置#1”~“位置#5”に含まれるシミュレーション処理のうち、送信機(Tx3)から受信機(Rx1)に電波を送信するシミュレーション処理を、スレッド2として、“CPU1”に割り当てた様子を示している。
【0058】
以下、送信機(Tx3)から受信機(Rx10)に電波を送信するシミュレーション処理まで、各スレッド(スレッド3、4、・・・19、20)が“CPU0”または“CPU1”に割り当てられる。
【0059】
同様に、ロケーションが“位置#6”~“位置#10”に含まれる複数のシミュレーション処理についても、各スレッド(スレッド21、22、23、24、・・・39、40)が、“CPU0”または“CPU1”に割り当てられる。
【0060】
図6の例によれば、ロケーションが“位置#1”~“位置#5”に含まれるシミュレーション処理であって、受信機(Rx1)が受信するシミュレーション処理について、
・CPU0による処理(送信機(Tx1、Tx2)が送信する処理)と、
・CPU1による処理(送信機(Tx3)が送信する処理)と、
は並列に行われる。
【0061】
以下、同様に、図6の例によれば、ロケーションが“位置#1”~“位置#5”に含まれるシミュレーション処理であって、受信機(Rx2~Rx10)が受信するシミュレーション処理について、それぞれ、
・CPU0による処理(送信機(Tx1、Tx2)が送信する処理)と、
・CPU1による処理(送信機(Tx3)が送信する処理)と、
は並列に行われる。
【0062】
また、同様に、図6の例によれば、ロケーションが“位置#6”~“位置#10”に含まれるシミュレーション処理であって、受信機(Rx1~Rx10)が受信するシミュレーション処理について、それぞれ、
・CPU0による処理(送信機(Tx1、Tx2)が送信する処理)と、
・CPU1による処理(送信機(Tx3)が送信する処理)と、
は並列に行われる。
【0063】
(4)パス候補に基づく並列化方法
図7は、第4の並列化方法(パス候補に基づく並列化方法)の具体例を示す図である。図7において、符号411~符号420、及び、符号411_1は、図5に示した、符号411~符号420、及び、符号411_1と同じである。
【0064】
パス候補に基づく並列化方法の場合、各CPU(CPU0、CPU1)に割り当てるスレッドを、パス候補単位で決定する(1または複数のパス候補に対応するシミュレーション処理のまとまりを1つのスレッドとする)。図7の例は、リンク1,1に含まれるパス候補のうち、1番目のパス候補のシミュレーション処理を、スレッド1として、“CPU0”に割り当てた様子を示している。
【0065】
また、図7の例は、リンク1,1に含まれるパス候補のうち、2番目のパス候補のシミュレーション処理をスレッド2として、“CPU1”に割り当てた様子を示している。以下、420番目のパス候補のシミュレーション処理まで、同様に、各スレッドが“CPU0”または“CPU1”に割り当てられる。
【0066】
以下、ロケーションが“位置#1”~“位置#10”に含まれる全てのリンクに含まれる全てのパス候補のシミュレーション処理について、同様に、各スレッドが“CPU0”または“CPU1”に割り当てられる。
【0067】
これにより、例えば、リンク1,1に含まれるパス候補のうち、1番目のパス候補のシミュレーション処理と、2番目のパス候補のシミュレーション処理とは、並列に行われる。
【0068】
<並列化方法決定処理の流れ>
次に、並列化方法決定処理の流れについて説明する。第1の実施形態に係る電波伝搬シミュレーション装置100において、並列化方法決定部110の決定部304では、複数のシミュレーション処理を実行する実行環境に基づいて、上記具体例を示した4通りの並列化方法の中から、1の並列化方法を決定する。図8は、第1の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
【0069】
図8に示すように、ステップS801において、入力ファイル読み込み部301は、情報格納部130より、移動体モデル150を読み出す。また、シミュレーション条件取得部302は、移動体モデル150に基づいて、ロケーション数を取得し、決定部に通知する。これにより、決定部304は、ロケーション数を取得する。
【0070】
ステップS802において、入力ファイル読み込み部301は、情報格納部130より、リンク情報160を読み出す。また、シミュレーション条件取得部302は、リンク情報160に基づいて、送信機の設置数を取得し、決定部304に通知する。これにより、決定部304は、送信機の設置数を取得する。
【0071】
ステップS803において、入力ファイル読み込み部301は、情報格納部130より、リンク情報160を読み出す。また、シミュレーション条件取得部302は、リンク情報160に基づいて、受信機の設置数を取得し、決定部304に通知する。これにより、決定部304は、受信機の設置数を取得する。
【0072】
ステップS804において、実行環境情報取得部303は、CPU数を取得し、決定部304に通知する。これにより、決定部304は、CPU数を取得する。
【0073】
ステップS805において、決定部304は、取得したロケーション数がCPU数以上であるか否かを判定する。ステップS805において、取得したロケーション数がCPU数以上であると判定した場合(ステップS805においてYESの場合)、ステップS806に進む。
【0074】
ステップS806において、決定部304は、電波伝搬シミュレーションを、移動体に基づく並列化方法により実行することを決定する。
【0075】
一方、ステップS805において、取得したロケーション数がCPU数未満であると判定した場合(ステップS805においてNOの場合)、ステップS807に進む。
【0076】
ステップS807において、決定部304は、送信機の設置数がCPU数以上であるか否かを判定する。ステップS807において、送信機の設置数がCPU数以上であると判定した場合(ステップS807においてYESの場合)、ステップS808に進む。
【0077】
ステップS808において、決定部304は、電波伝搬シミュレーションを、送信機に基づく並列化方法により実行することを決定する。
【0078】
一方、ステップS807において、送信機の設置数がCPU数未満であると判定した場合(ステップS807においてNOの場合)、ステップS809に進む。
【0079】
ステップS809において、決定部304は、受信機の設置数がCPU数以上であるか否かを判定する。ステップS809において、受信機の設置数がCPU数以上であると判定した場合(ステップS809においてYESの場合)、ステップS810に進む。
【0080】
ステップS810において、決定部304は、電波伝搬シミュレーションを、受信機に基づく並列化方法により実行することを決定する。
【0081】
一方、ステップS809において、受信機の設置数がCPU数未満であると判定した場合(ステップS809においてNOの場合)、ステップS811に進む。
【0082】
ステップS811において、決定部304は、電波伝搬シミュレーションを、パス候補に基づく並列化方法により実行することを決定する。
【0083】
以上の並列化方法決定処理により、決定部304では、最適な並列化方法を決定することができる。なお、図8のステップS806、S808、S810、S811においてそれぞれ決定される並列化方法は、ステップS806→S808→S810→S811の順で、スレッドの数が増えていき、1スレッドあたりに含まれるシミュレーション処理の数が減っていく。つまり、ステップS806→S808→S810→S811の順で、オーバヘッドの時間が増加する一方で、各CPUに割り当てるスレッドを均等化することができる。
【0084】
このように、第1の実施形態に係る電波伝搬シミュレーション装置100では、効率的な並列処理を実現するために、CPU数に応じた並列化方法を決定する。これにより、“オーバヘッドの時間の削減”と“各CPUへのスレッドの均等な割り当て”とのバランスがとれた、最適な並列化方法を決定することができる。
【0085】
<各並列化方法が決定された場合の効果>
次に、各並列化方法(移動体に基づく並列化方法、送信機に基づく並列化方法、受信機に基づく並列化方法)が決定された場合の効果について説明する。
【0086】
(1)移動体に基づく並列化方法が決定された場合の効果
はじめに、移動体に基づく並列化方法が決定された場合の効果について説明する。なお、説明にあたっては、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間、及び、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間と対比する。
【0087】
図9は、第1の並列化方法(移動体に基づく並列化方法)が決定された場合の効果を示す図である。
【0088】
図9において、符号910は、移動体に基づく並列化方法において、各CPUに割り当てられるスレッドを模式的に示したものである。図4で説明したとおり、移動体に基づく並列化方法の場合、スレッド1とスレッド2が、CPU0と、CPU1とに割り当てられる。
【0089】
符号911は、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。符号911において、網掛け部分は、スレッドの作成や排他制御などのオーバヘッドの時間を表しており、白色部分は、パス候補の生成やパス到達判定に要する時間を表している。
【0090】
一方、符号920は、送信機に基づく並列化方法において、各CPUに割り当てられるスレッドを模式的に示したものである。図5で説明したとおり、送信機に基づく並列化方法の場合、スレッド1~スレッド4が、CPU0と、CPU1とに割り当てられる。
【0091】
符号921は、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。符号921において、網掛け部分は、スレッドの作成や排他制御などのオーバヘッドの時間を表しており、白色部分は、パス候補の生成やパス到達判定に要する時間を表している。
【0092】
一方、符号930は、受信機に基づく並列化方法において、各CPUに割り当てられるスレッドを模式的に示したものである。図6で説明したとおり、受信機に基づく並列化方法の場合、スレッド1~スレッド40が、CPU0と、CPU1とに割り当てられる。
【0093】
符号931は、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。符号931において、網掛け部分は、スレッドの作成や排他制御などのオーバヘッドの時間を表しており、白色部分は、パス候補の生成やパス到達判定に要する時間を表している。
【0094】
符号911、921、931の対比から明らかなように、移動体に基づく並列化方法を用いた場合、送信機に基づく並列化方法及び受信機に基づく並列化方法を用いた場合と比較して、オーバヘッドの時間が少なく、実行時間を短縮することができる。つまり、図9に示すケースでは、移動体に基づく並列化方法が決定されることで、効率的な並列処理が実現され、実行時間を短縮することができる。
【0095】
(2)送信機に基づく並列化方法が決定された場合の効果
次に、送信機に基づく並列化方法が決定された場合の効果について説明する。なお、説明にあたっては、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間、及び、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間と対比する。
【0096】
図10は、第2の並列化方法(送信機に基づく並列化方法)が決定された場合の効果を示す図である。
【0097】
図10において、符号910、920、930は、図9で示した符号910、920、930と同じであるため、ここでは、説明を省略する。なお、図10では、スレッドが割り当てられるCPUが、4個(CPU0、CPU1、CPU2、CPU3)である(CPU数=4である)ものとして説明する。
【0098】
符号1011は、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。また、符号1021は、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。更に、符号1031は、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。
【0099】
符号1011と符号1021との対比から明らかなように、符号1011の場合、スレッドの数が、CPU数より少なく、スレッドが割り当てられないCPU(図10の例では、CPU2、CPU3)が発生する。一方、符号1021の場合、スレッドが割り当てられないCPUが発生しない。このため、送信機に基づく並列化方法を用いた場合、移動体に基づく並列化方法を用いた場合と比較して、実行時間を短縮することができる。
【0100】
また、符号1021と符号1031との対比から明らかなように、送信機に基づく並列化方法を用いた場合、受信機に基づく並列化方法を用いた場合と比較して、オーバヘッドの時間が少なく、実行時間を短縮することができる。
【0101】
つまり、図10に示すケースでは、送信機に基づく並列化方法が決定されることで、効率的な並列処理が実現され、実行時間を短縮することができる。
【0102】
(3)受信機に基づく並列化方法が決定された場合の効果
次に、受信機に基づく並列化方法が決定された場合の効果について説明する。なお、説明にあたっては、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間、及び、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間と対比する。
【0103】
図11は、第3の並列化方法(受信機に基づく並列化方法)が決定された場合の効果を示す図である。
【0104】
図11において、符号910、920、930は、図9で示した符号910、920、930と同じであるため、ここでは、説明を省略する。なお、図11では、スレッドが割り当てられるCPUが、10個(CPU0~CPU9)である(CPU数=10である)として説明する。
【0105】
符号1111は、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。また、符号1121は、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。更に、符号1131は、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。
【0106】
符号1111、符号1121に示すように、スレッドの数が、CPU数より少ない場合、スレッドが割り当てられないCPU(図11の例では、CPU2~CPU9、または、CPU4~CPU9)が発生する。一方、符号1131の場合、スレッドが割り当てられないCPUが発生しない。このため、受信機に基づく並列化方法を用いた場合、移動体に基づく並列化方法、及び、送信機に基づく符号化方法を用いた場合と比較して、実行時間を短縮することができる。
【0107】
つまり、図11に示すケースでは、受信機に基づく並列化方法が決定されることで、効率的な並列処理が実現され、実行時間を短縮することができる。
【0108】
以上の説明から明らかなように、第1の実施形態に係る電波伝搬シミュレーション装置は、
・電波伝搬のシミュレーション条件として、ロケーション数、送信機の設置数、受信機の設置数を取得する。
・取得したシミュレーション条件を組み合わせることで導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、複数のシミュレーション処理を実行するための実行環境である、CPU数に応じて決定する。
【0109】
これにより、第1の実施形態によれば、電波伝搬シミュレーションにおいて、効率的な並列処理を実現することが可能になる。この結果、電波伝搬シミュレーションにかかる時間を短縮することができる。
【0110】
[第2の実施形態]
上記第1の実施形態では、移動体に基づく並列化方法、送信機に基づく並列化方法、受信機に基づく並列化方法を挙げたが、並列処理を行うための並列化方法はこれに限定されない。例えば、リンク構造に基づく並列化方法を用いてもよい。以下、第2の実施形態について、上記第1の実施形態との相違点を中心に説明する。
【0111】
<リンク構造に基づく並列化方法の具体例>
図12は、第5の並列化方法(リンク構造に基づく並列化方法)の具体例を示す図である。図12において、符号411~符号420、及び、符号411_1は、図5に示した、符号411~符号420、及び、符号411_1と同じである。
【0112】
リンク構造に基づく並列化方法の場合、各CPU(ここで、CPU0~CPU3)に割り当てるスレッドを、リンク単位で決定する(1つのリンクに対応するシミュレーション処理のまとまりを1つのスレッドとする)。図12の例は、ロケーションが“位置#1”~“位置#5”に含まれる、送信機と受信機の組み合わせ(30通りの組み合わせ)それぞれにおいて実行される複数のシミュレーション処理を、スレッドとして、順次、各CPUに割り当てた様子を示している。
【0113】
また、図12の例は、ロケーションが“位置#6”~“位置#10”に含まれる、送信機と受信機の組み合わせ(30通りの組み合わせ)それぞれにおいて実行される複数のシミュレーション処理を、スレッドとして、順次、各CPUに割り当てた様子を示している。
【0114】
図12の例によれば、ロケーションが“位置#1”~“位置#5”に含まれるシミュレーション処理について、
・CPU0による処理(リンク1,1の処理)と、
・CPU1による処理(リンク1,2の処理)と、
・CPU2による処理(リンク1,3の処理)と、
・CPU3による処理(リンク1,4の処理)と、
は並列に行われる。
【0115】
同様に、図12の例によれば、ロケーションが“位置#1”~“位置#5”に含まれるシミュレーション処理について、
・CPU0による処理(リンク1,1の処理)と、
・CPU1による処理(リンク1,2の処理)と、
・CPU2による処理(リンク1,3の処理)と、
・CPU3による処理(リンク1,4の処理)と、
は並列に行われる。
【0116】
<並列化方法決定処理の流れ>
次に、第2の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れについて説明する。図13は、第2の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
【0117】
図13におけるステップS801~S803、S804~S806、S811の各工程は、図8におけるステップS801~S803、S804~S806、S811の各工程と同じであるため、ここでは説明を省略する。
【0118】
ステップS1301において、決定部304は、ステップS802で取得した送信機の設置数と、ステップS803で取得した受信機の設置数とに基づいて、リンク数を算出する。
【0119】
ステップS1302において、決定部304は、算出したリンク数がCPU数以上であるか否かを判定する。ステップS1302において、算出したリンク数がCPU数以上であると判定した場合(ステップS1301においてYESの場合)、ステップS1303に進む。
【0120】
ステップS1303において、決定部304は、電波伝搬シミュレーションを、リンク構造に基づく並列化方法により実行することを決定する。
【0121】
一方、ステップS1302において、算出したリンク数がCPU数未満であると判定した場合(ステップS1302においてNOの場合)、ステップS811に進む。
【0122】
<リンク構造に基づく並列化方法が決定された場合の効果>
次に、リンク構造に基づく並列化方法が決定された場合の効果について説明する。なお、説明にあたっては、上記第1の実施形態で説明した受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間と対比する。
【0123】
図14は、第5の並列化方法(リンク構造に基づく並列化方法)が決定された場合の効果を示す図である。
【0124】
図14において、符号1410は、受信機に基づく並列化方法において、各CPUに割り当てられるスレッドを模式的に示したものである。図6で説明したとおり、受信機に基づく並列化方法の場合、ロケーションが“位置#1”~“位置#5”に含まれるシミュレーション処理について、スレッド1~スレッド30が、CPU0~CPU3に割り当てられる。
【0125】
符号1411は、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。
【0126】
一方、符号1420は、リンク構造に基づく並列化方法において、各CPUに割り当てられるスレッドを模式的に示したものである。図12で説明したとおり、リンク構造に基づく並列化方法の場合、ロケーションが“位置#1”~“位置#5”に含まれるシミュレーション処理について、スレッド1~スレッド30が、CPU0~CPU3に割り当てられる。
【0127】
符号1421は、リンク構造に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間を模式的に示したものである。
【0128】
符号1411と符号1421との対比から明らかなように、受信機に基づく並列化方法の場合、各受信機単位に含まれるスレッドの数(ここでは、リンク数)が“10”であり、CPU数(“4”)の整数倍でない。このため、スレッド11、スレッド12は、CPU0、CPU1にそれぞれ割り当てられることになる。つまり、CPU0、CPU1にそれぞれ、スレッド9、スレッド10が割り当てられた際、CPU2、CPU3には、スレッドが割り当てられない。
【0129】
同様に、スレッド21、スレッド22は、CPU0、CPU1にそれぞれ割り当てられることとなり、CPU0、CPU1にそれぞれスレッド19、スレッド20が割り当てられた際、CPU2、CPU3には、スレッドが割り当てられない。
【0130】
一方、リンク構造に基づく並列化方法の場合、リンク単位で各CPUに割り当てられるため、スレッドが割り当てられないCPUが発生しない。このため、リンク構造に基づく並列化方法を用いた場合、受信機に基づく並列化方法を用いた場合と比較して、実行時間を短縮することができる。
【0131】
つまり、図14のケースでは、リンク構造に基づく並列化方法が決定されることで、効率的な並列処理が実現され、実行時間を短縮することができる。
【0132】
以上の説明から明らかなように、第2の実施形態に係る電波伝搬シミュレーション装置は、
・電波伝搬のシミュレーション条件として、ロケーション数、送信機の設置数、受信機の設置数を取得し、送信機の設置数と受信機の設置数とに基づいて、リンク数を算出する。
・取得したシミュレーション条件を組み合わせることで導出される複数のシミュレーション処理を、並列に実行するための並列化方法の1つとして、リンク構造に基づく並列化方法を含む。
【0133】
これにより、第2の実施形態によれば、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行する場合と比較して、効率的な並列処理を実現することが可能になる。この結果、電波伝搬シミュレーションにかかる時間を短縮することができる。
【0134】
[第3の実施形態]
上記第1及び第2の実施形態では、CPU数に基づいて並列化方法を決定するものとして説明した。これに対して、第3の実施形態では、電波伝搬シミュレーションの実行時間を推定し、推定した実行時間に基づいて並列化方法を決定する。以下、第3の実施形態について、上記第1及び第2の実施形態との相違点を中心に説明する。
【0135】
<電波伝搬シミュレーション装置の機能構成>
はじめに、第3の実施形態に係る電波伝搬シミュレーション装置100の並列化方法決定部の機能構成について説明する。図15は、第3の実施形態に係る電波伝搬シミュレーション装置の機能構成の一例を示す図である。図3との相違点は、図15の場合、並列化方法決定部1500が、1リンク実行時間測定部1501、スレッド生成時間測定部1502、排他制御実行時間測定部1503、処理時間推定部1504を有する点である。
【0136】
1リンク実行時間測定部1501は、指定された反射回数、回折回数に基づいて、1リンクに含まれる複数のシミュレーション処理を実行するのにかかる実行時間(t)を測定し、処理時間推定部1504に通知する。
【0137】
スレッド生成時間測定部1502は、スレッドを生成するのに要する時間(createThreadTime)を測定し、処理時間推定部1504に通知する。
【0138】
排他制御実行時間測定部1503は、排他制御を実行するのに要する時間(mutexTime)を測定し、処理時間推定部1504に通知する。
【0139】
処理時間推定部1504は推定部の一例であり、各並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T)を推定する。処理時間推定部1504は、実行時間として、
・各リンクを逐次処理することで電波伝搬シミュレーションを実行した場合の実行時間(T0)、
・パス候補に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T1)、
・受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T2)、
・送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T3)、
・移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T4)、
を推定する。
【0140】
なお、処理時間推定部1504では、下式(式1)に基づいて、逐次処理により電波伝搬シミュレーション処理を実行した場合の実行時間(T0)を推定(算出)する。
【0141】
【数1】
【0142】
なお、LocationNoはロケーション数を、TxNoは送信機の設置数を、RxNoは受信機の設置数をそれぞれ表す。
【0143】
また、処理時間推定部1504では、下式(式2)に基づいて、パス候補に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T1)を推定(算出)する。
【0144】
【数2】
【0145】
なお、ThreadNoは、CPU数を指すものとする。
【0146】
また、処理時間推定部1504は、下式(式3)に基づいて、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T2)を推定(算出)する。
【0147】
【数3】
【0148】
また、処理時間推定部1504は、下式(式4)に基づいて、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T3)を推定(算出)する。
【0149】
【数4】
【0150】
また、処理時間推定部1504は、下式(式5)に基づいて、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T4)を推定(算出)する。
【0151】
【数5】
【0152】
<並列化方法決定処理の流れ>
次に、第3の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れについて説明する。図16は、第3の実施形態に係る電波伝搬シミュレーション装置による並列化方法決定処理の流れを示すフローチャートである。
【0153】
図16におけるステップS801~S804の各工程は、図8におけるステップS801~S804の各工程と同じであるため、ここでは説明を省略する。
【0154】
ステップS1601において、1リンク実行時間測定部1501は、電波伝搬シミュレーション装置100のユーザにより指定された反射回数を取得する。また、ステップS1602において、1リンク実行時間測定部1501は、電波伝搬シミュレーション装置100のユーザにより指定された回折回数を取得する。更に、ステップS1603において、1リンク実行時間測定部1501は、電波伝搬シミュレーション装置100のユーザにより指定された透過回数を取得する。
【0155】
ステップS1604において、1リンク実行時間測定部1501は、取得した反射回数、回折回数のもと、1リンクあたりの実行時間を測定する。
【0156】
ステップS1605において、スレッド生成時間測定部1502は、スレッドの生成に要する時間を測定する。
【0157】
ステップS1606において、排他制御実行時間測定部1503は、排他制御の実行時間を測定する。
【0158】
ステップS1607において、処理時間推定部1504は、各リンクを逐次処理することで電波伝搬シミュレーションを実行した場合の実行時間(T0)を推定(算出)する。
【0159】
ステップS1608において、処理時間推定部1504は、パス候補に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T1)を推定(算出)する。
【0160】
ステップS1609において、処理時間推定部1504は、送信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T2)を推定(算出)する。
【0161】
ステップS1610において、処理時間推定部1504は、受信機に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T3)を推定(算出)する。
【0162】
ステップS1611において、処理時間推定部1504は、移動体に基づく並列化方法のもとで電波伝搬シミュレーションを実行した場合の実行時間(T4)を推定(算出)する。
【0163】
ステップS1612において、決定部304は、処理時間推定部1504において推定(算出)された実行時間(T0~T4)の中から、実行時間が最小となる並列化方法を決定する。
【0164】
以上の説明から明らかなように、第3の実施形態に係る電波伝搬シミュレーション装置は、
・電波伝搬のシミュレーション条件として、ロケーション数、送信機の設置数、受信機の設置数、反射回数、回折回数、透過回数を取得する。
・電波伝搬シミュレーションの実行時間を推定(算出)するのに用いるパラメータ(1リンク実行時間、スレッド生成時間、排他制御実行時間)を測定する。
・取得したシミュレーション条件を組み合わせることで導出される複数のシミュレーション処理を、並列に実行するための各並列化方法を用いた場合の、実行時間を推定する。
・実行時間が最小となる並列化方法を決定する。
【0165】
これにより、第3の実施形態によれば、電波伝搬シミュレーションにおいて、効率的な並列処理を実現することが可能になる。この結果、電波伝搬シミュレーションにかかる時間を短縮することができる。
【0166】
[その他の実施形態]
上記第1の実施形態では、並列化方法決定処理(図8)において、送信機の設置数とCPU数とを対比した後に(ステップS807)、受信機の設置数とCPU数とを対比した(ステップS809)。しかしながら、対比する順序はこれに限定されず、受信機の設置数とCPU数とを対比した後に、送信機の設置数とCPU数とを対比してもよい。
【0167】
上記第3の実施形態では、電波伝搬シミュレーションの実行時間を推定(算出)するのに用いるパラメータを測定するものとして説明した。しかしながら、測定する代わりに、予めテーブルに保持しておき、電波伝搬シミュレーションの実行時間を推定(算出)する際に、該テーブルから読み出すようにしてもよい。
【0168】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件を取得する取得部と、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、該複数のシミュレーション処理を実行する実行環境に応じて決定する決定部と
を有することを特徴とする電波伝搬シミュレーション装置。
(付記2)
前記取得部は、前記シミュレーション条件として、
前記所定空間を移動体が移動する場合の移動先の位置の数と、
前記所定空間に前記送信機を設置する場合の設置先の数と、各設置先に設置される前記送信機の数とに基づいて導出される、前記送信機の設置数と、
前記所定空間に前記受信機を設置する場合の設置先の数と、各設置先に設置される前記受信機の数とに基づいて導出される、前記受信機の設置数と
を取得することを特徴とする付記1に記載の電波伝搬シミュレーション装置。
(付記3)
前記決定部は、前記実行環境を示す情報である前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、前記取得部が取得した、前記移動先の位置の数、前記送信機の設置数、前記受信機の設置数の少なくともいずれか1つとを対比することで、前記並列化方法を決定することを特徴とする付記2に記載の電波伝搬シミュレーション装置。
(付記4)
前記決定部は、
前記送信機の設置数と、前記受信機の設置数とに基づいて、前記送信機と前記受信機との間のリンク数を算出し、
前記実行環境を示す情報である、前記複数のシミュレーション処理を割り当てる場合の割り当て対象の数と、算出した前記リンク数とを対比することで、前記並列化方法を決定することを特徴とする付記2に記載の電波伝搬シミュレーション装置。
(付記5)
それぞれの並列化方法に基づいて、前記複数のシミュレーション処理を実行した場合の実行時間を推定する推定部を更に有し、
前記決定部は、前記実行時間が最小となる並列化方法を決定することを特徴とする付記1に記載の電波伝搬シミュレーション装置。
(付記6)
所定空間において送信機と受信機との電波伝搬をシミュレーションするためのシミュレーション条件を取得し、
前記シミュレーション条件に基づいて導出される複数のシミュレーション処理を、並列に実行するための並列化方法を、該複数のシミュレーション処理を実行する実行環境に応じて決定する、
処理をコンピュータに実行させるための電波伝搬シミュレーションプログラム。
【0169】
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【0170】
100 :電波伝搬シミュレーション装置
110 :並列化方法決定部
120 :シミュレーション部
301 :入力ファイル読み込み部
302 :シミュレーション条件取得部
303 :実行環境情報取得部
304 :決定部
1500 :並列化方法決定部
1501 :1リンク実行時間測定部
1502 :スレッド生成時間測定部
1503 :排他制御実行時間測定部
1504 :処理時間推定部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16