(57)【要約】  本発明の並列処理装置は、親機（１）と複数の特性演算部（２３）を有する子機（２）とで構成され、送信源から放射される波が受信エリア内の受信点に到達したときの受信点における受信特性を並列に演算する並列処理装置であって、親機（１）は、送信源から受信点に至る波の伝搬経路を追跡するレイトレース処理を行い、レイトレース処理により得られた波の経路を示すデータを伝搬経路順に並べ替えるデータ並替部（１２）と、データ並替部で並べ替えた波の経路を示すデータを分割して複数の特性演算部にそれぞれ割り当てるデータ割当部（１５）とを備え、子機（２）は、データ割当部（１５）で割り当てられた波の経路を示すデータを用いて受信点における受信特性を複数の特性演算部（２３）で並列に演算する。これにより、レイトレース法を用いた演算処理において、メモリ領域への規則的なアクセスが可能となり、処理時間を短縮することができる。
2017203617.tif 000002
【特許請求の範囲】
【請求項１】
親機と複数の特性演算部を有する子機とで構成され、送信源から放射される波が受信エリア内の受信点に到達したときの前記受信点における受信特性を並列に演算する並列処理装置であって、
前記親機は、
前記送信源から前記受信点に至る波の伝搬経路を追跡するレイトレース処理を行い、前記レイトレース処理により得られた前記波の経路を示すデータを伝搬経路順に並べ替えるデータ並替部と、
前記データ並替部で並べ替えた前記波の経路を示すデータを分割して前記複数の特性演算部にそれぞれ割り当てるデータ割当部とを備え、
前記子機は、
前記データ割当部で割り当てられた前記波の経路を示すデータを用いて前記受信点における受信特性を前記複数の特性演算部で並列に演算する並列処理装置。
【請求項２】
複数の受信点における受信特性を並列に演算する並列処理装置であって、
前記データ並替部は、前記レイトレース処理により得られた前記波の経路を示すデータを到達する受信点ごとに伝搬経路順に並べ替え、
前記データ割当部は、前記データ並替部で並べ替えた前記波の経路を示すデータを到達する受信点ごとに分割して前記複数の特性演算部にそれぞれ割り当て、
前記複数の特性演算部は、前記データ割当部で割り当てられた前記波の経路を示すデータを用いて前記複数の受信点における受信特性をそれぞれ並列に演算することを特徴とする請求項１に記載の並列処理装置。
【請求項３】
前記親機と前記子機とは独立した作業バッファ領域を有し、
前記子機における受信特性の演算処理と、前記親機から前記子機へのデータ送信処理
と、前記子機から前記親機へのデータ送信処理とを同時に行うことを特徴とする請求項１または請求項２に記載の並列処理装置。
【請求項４】
前記データ並替部は、前記データ割当部で割り当てられた前記波の経路を示すデータを用いて前記特性演算部が受信特性を演算する間に、前記特性演算部における次の演算で用いるデータの並べ替えを行うことを特徴とする請求項１から請求項３のいずれか１項に記載の並列処理装置。
【請求項５】
前記データ割当部は、並べ替え後の前記波の経路を示すデータを前記子機のキャッシュメモリのサイズ以下に分割して前記子機へ送信することを特徴とする請求項１から請求項４のいずれか１項に記載の並列処理装置。
【請求項６】
前記親機はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とし、
前記子機は前記親機とバスで接続されたＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とし、
前記親機と前記子機との間のデータ送受信処理が前記バスを跨ぐ場合には通信で処理されることを特徴とする請求項１から請求項５のいずれか１項に記載の並列処理装置。
【請求項７】
親機と複数の特性演算部を有する子機とで構成され、送信源から放射される波が受信エリア内の受信点に到達したときの前記受信点における受信特性を並列に演算する並列処理装置を用いた並列処理方法であって、
前記送信源から前記受信点に至る波の伝搬経路を追跡するレイトレース処理を行い、前記レイトレース処理により得られた前記波の経路を示すデータを伝搬経路順に並べ替えるデータ並替ステップと、
前記データ並替ステップで並べ替えた前記波の経路を示すデータを分割して前記複数の特性演算部に割り当てるデータ割当ステップと、
前記データ割当ステップで割り当てられた前記波の経路を示すデータを用いて前記複数の特性演算部で前記受信点における受信特性を並列に演算する特性演算ステップとを備えた並列処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、電波伝搬シミュレーションのように、レイトレース法を用いて波の受信特性を算出する処理において、処理時間を短縮することが可能な並列処理装置及び並列処理方法に関するものである。
【背景技術】
【０００２】
電波伝搬シミュレーションは、衛星等の電波の送信源、ビル等の構造物群、および、地上等に設置した受信点群の位置情報を基に、各受信点で得られる電波の強度を求めるものであり、アンテナの設計・性能検証や電波状況の分析・改善の手段として用いられる。
送信源から放射された電波は、空中を伝わり、物質を通過、あるいは物質で反射されて基地局等の所望の受信エリアに到達する。送信源から放射された電波が受信エリアに到達するまでに、電波の電力強度は構造物との接触に応じて減衰するため、状況によっては、受信エリアに到達する電波の電力強度が非常に微弱なものとなる。この問題を解決して所望の電波環境を得るためには、この電波伝搬の状況をシミュレーションで検証することが考えられる。
シミュレーションのアルゴリズムとしては、例えば、イメージング法、ＳＢＲ（Ｓｈｏｏｔｉｎｇ  ａｎｄ  Ｂｏｕｎｃｉｎｇ  Ｒａｙ）法、ＶＰＬ（Ｖｅｒｔｉｃａｌ  Ｐｌａｎｅ  Ｌａｕｎｃｈ）法、そしてＶＰＬ法をベースとしたレイトレース法等が知られている。一般的に、電波伝搬シミュレーションは演算量が多いため、どのアルゴリズムを用いても処理に長時間を要する。【０００３】
電波伝搬シミュレーションにおけるレイトレース法は、送信源から放射される電波を光線とみなし、周辺の構造物との反射・透過・回折といった相互作用を経て受信点に到達する光線を幾何学的にトレースすることにより、電波伝搬をシミュレートする技術である。コンピュータグラフィックス分野のレイトレース法と扱いが異なる点は、電波伝搬の様子をシミュレートするのみならず、その結果からシステム設計などに必要な伝搬諸特性を推定することにある。【０００４】
レイトレース法による経路追跡演算は、一般的に負荷が大きく、複雑な電波環境を対象とする場合には莫大な演算時間を要する。また、電波が構造物と接触し、反射や回折が生じた際に増加する電波の数が多い場合には、この経路追跡演算に要する時間がさらに増加し、全体の処理時間が増加する。このため、複数の処理装置を用いた並列化により、処理時間の削減が行われている。【０００５】
並列処理システムは、共有並列システムと分散並列システムの２つに分けられる。
共有並列システムは、並列に動作する処理装置が同一のメモリ空間を共有し、明示的にデータを交換することなく処理装置同士がデータを共有して演算を行う形態であり、最終的な演算結果を異なるデータ領域に格納することで並列化を施す。
分散並列システムは、並列に動作する処理装置が互いに独立したメモリ空間を有する形態であり、各処理装置のメモリ空間にデータを分散して演算を行い、演算結果を集約する通信処理を導入して並列化を施す。このため、分散化可能な演算アルゴリズムへ再構成する必要がある。【０００６】
分散並列システムは２種類の系で構成される。具体的には、複数の処理装置（処理装置とメモリ空間との組）が通信で接続された系と、各処理装置に設けられ、規則的なデータアクセスと演算とが高速に行われる処理単位を１つ以上備えた系とで構成される。
また、分散並列システム向けの並列処理方式の構成は、大きく２つに分けられる。１つ目の構成は、データ・処理が局所領域の集合に分割化され、その局所領域それぞれでの処理が“送信”“演算”“結果受信”の順番で反復される。“送信”と“結果受信”は同期的もしくは非同期的に行われる。２つ目の構成は、各処理装置のメモリ空間にデータが分散され、処理単位の集合を使用して規則的な演算が行われる。この際、規則的な処理は高効率であるが、不規則的な処理は効率の低下につながる。【０００７】
並列処理システムを用いた処理方法として、例えば、非特許文献１には、電波伝搬シミュレーションのアルゴリズムにＳＢＲ法を採用し、ＧＰＵを用いた並列処理方式によってシミュレーションの処理時間を削減する方法が開示されている。しかしながら、この並列処理方式は、レイトレース法のような不規則演算を行うアルゴリズムに対しては不向きであり、ＧＰＵによる高速化の効果は得られない。【０００８】
これに対して、特許文献１には、レイトレース法に対し、放射された光線を方位ごとに分割して複数のＣＰＵで処理する並列処理方式が開示されている。この方式は、並列に動作するＣＰＵが同一のメモリ空間を共有し、明示的なデータ交換なくＣＰＵ同士がデータを共有する形態であり、異なるデータ領域に演算結果を格納するようにして並列化を施す共有並列システムでシミュレーションが施されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−２９４１３３号公報
【非特許文献】
【００１０】
【非特許文献１】Ｂ．Ｒ．Ｅｐｓｔｅｉｎ  ａｎｄ  Ｄ．Ｌ．Ｒｈｏｄｅｓ  ”ＧＰＵ−Ａｃｃｅｌｅｒａｔｅｄ  Ｒａｙ  Ｔｒａｃｉｎｇ  ｆｏｒ  Ｅｌｅｃｔｒｏｍａｇｎｅｔｉｃ  Ｐｒｏｐａｇａｔｉｏｎ  Ａｎａｌｙｓｉｓ”，  ｉｎ  Ｐｒｏｃ．  ２０１０  ＩＥＥＥ  ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅｓ，  Ｗｉｒｅｌｅｓｓ  Ｉｎｆｏｒｍａｔｉｏｎ，  Ｔｅｃｈｎｏｌｏｇｙ  Ｓｙｓｔｅｍｓ
【発明の概要】
【発明が解決しようとする課題】
【００１１】
レイトレース法を用いた電波伝搬シミュレーションでは、電波が構造物との衝突を経て受信点に到達する経路を抽出して受信電力値の演算を行う。しかしながら、特許文献１には、演算処理を並列化させるために、複数のＣＰＵが同一のメモリ空間を共有すること、および光線の方位ごとに処理を分割して複数のＣＰＵにそれぞれ割り当てることが記載されているのみで、メモリ領域内のデータ配置については記載されていない。このため、処理装置が不規則にメモリ領域にアクセスすることになり、効率が低下し、処理に長時間を要するという課題があった。【００１２】
この発明は、上記のような課題を解決するためになされたもので、レイトレース法を用いた演算処理において、処理装置が規則的にメモリ領域にアクセスすることのできる並列処理装置及び並列処理方法を得ることを目的とする。
【課題を解決するための手段】
【００１３】
この発明に係る並列処理装置は、親機と複数の特性演算部を有する子機とで構成され、送信源から放射される波が受信エリア内の受信点に到達したときの受信点における受信特性を並列に演算する並列処理装置であって、親機は、送信源から受信点に至る波の伝搬経路を追跡するレイトレース処理を行い、レイトレース処理により得られた波の経路を示すデータを伝搬経路順に並べ替えるデータ並替部と、データ並替部で並べ替えた波の経路を示すデータを分割して複数の特性演算部にそれぞれ割り当てるデータ割当部とを備え、子機は、データ割当部で割り当てられた波の経路を示すデータを用いて受信点における受信特性を複数の特性演算部で並列に演算するものである。
【発明の効果】
【００１４】
この発明によれば、上記のように構成したことにより、レイトレース法を用いた演算処理において、メモリ領域への規則的なアクセスが可能となり、処理時間を短縮することができる。
【図面の簡単な説明】
【００１５】
【図１】この発明の実施の形態１における並列処理装置のハードウェア構成を示す構成図である。
【図２】この発明の実施の形態１における並列処理装置の構成を示す構成図である。
【図３】水平方向でのレイトレース法の一例を示す説明図である。
【図４】レイトレース法における電波が受信点に到達したか否かの判定基準を示す説明図である。
【図５】この発明の実施の形態１における並列処理装置の並べ替え処理の一例を示す説明図である。
【図６】この発明の実施の形態１における並列処理装置のテーブルの分割方法の一例を示す説明図である。
【図７】この発明の実施の形態１における並列処理装置の動作を示すフローチャートである。
【図８】この発明の実施の形態１における並べ替え処理を示すフローチャートである。
【図９】この発明の実施の形態１における並列処理装置のパイプライン処理を示す説明図である。
【発明を実施するための形態】
【００１６】
本発明は、親機、および複数の演算部を有する子機で構成され、送信源から放射された音波、光波、または電波（これらをまとめて「波」と呼ぶ）の経路を示すデータをレイトレース処理により生成し、生成されたデータを用いて、波が受信点に到達したときの受信特性を複数の演算部で並列に処理する並列処理装置に関するものであり、特に、レイトレース処理により生成されたデータを波の伝搬経路順に並べ替えてから受信特性を算出することを特徴とするものである。
以下では、一例として、電波伝搬シミュレーションにより、受信点における受信電力値を演算する場合について説明するが、本発明の並列処理装置は、電波のみを処理の対象とするものではなく、音波や光波を対象としてもよい。
以下、本発明の実施の形態について、図を参照して以下に説明する。なお、各図において、同一又は同様の構成部分については同じ符号を付している。
【００１７】
実施の形態１．
図１は、本発明の実施の形態による並列処理装置１００のハードウェア構成の一例を示す図である。並列処理装置１００は、親機１と子機２が内部に搭載された計算機により構成される。親機１および子機２は、独立した処理装置３，６とメモリ５，８をそれぞれ備える。親機１の処理装置３には、演算処理を行うコア４が１個存在しており、子機２の処理装置６には、演算処理を行うコア７が複数個存在している。親機１のコア４は１個以上であれば、複数でも構わない。親機１の処理装置３と子機２の処理装置６とは、通信部９を介してデータを送受信する。
【００１８】
並列処理装置１００の外部から入力されたデータ、および親機１で生成されたデータは、全て親機１のメモリ５に格納される。親機１のメモリ５に格納されたデータは、必要に応じて通信部９を通して子機２へ送信され、子機２のメモリ８にコピーされる。子機２の処理装置６にある複数のコア７は、それぞれメモリ８にアクセスすることが可能であり、メモリ８に格納されたデータを用いて並列に演算することが可能である。子機２のコア７で演算した結果はメモリ８に格納され、子機２のすべてのコア７における演算が終わると、子機２の処理装置６から親機１の処理装置３に通信部９を通して演算結果が送信される。これにより、子機２のメモリ８に格納された演算結果のデータが親機１のメモリ５にコピーされる。以上が並列処理装置１００を用いた分散システム方式の処理の流れである。
【００１９】
並列処理装置１００を構成する計算機は、例えば、親機１をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、子機２を複数の演算部が含まれるＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のようなプロセッサとし、これらのプロセッサが備える多数の演算部で電波の受信特性を並列に処理するよう構成する。このような構成の場合、親機１と子機２との間でデータ通信を行う通信部９は、ＰＣＩＥｘｐｒｅｓｓバスにより実現される。
【００２０】
図２は、本発明の実施の形態による並列処理装置１００の構成を示す機能構成図である。並列処理装置１００は、親機１と、子機２とで構成される。
親機１は、データ送受部１１と、データ並替部１２と、生成部１２ａと、並替部１２ｂと、並べ替え前データ記憶部１３と、並べ替え後データ記憶部１４と、データ割当部１５と、受信電力値記憶部１６とで構成される。なお、以降の説明では、生成部１２ａと並替部１２ｂとをまとめてデータ並替部１２と言うこともある。
子機２は、データ送受部２１と、分割データ記憶部２２と、複数の特性演算部２３とで構成される。
親機１のデータ割当部１５と子機２のデータ送受部２１とは、通信部を介して接続される。親機１のデータ送受部１１と子機２のデータ送受部２１とは、通信部を介して接続される。
【００２１】
並べ替え前データ記憶部１３、並べ替え後データ記憶部１４、および受信電力値記憶部１６は、図１に示す親機１のメモリ５に対応し、分割データ記憶部２２は、図１に示す子機２のメモリ８に対応する。また、データ送受部１１、データ並替部１２、生成部１２ａ、並替部１２ｂ、およびデータ割当部１５は、親機１の処理装置３に対応し、特に、データ並替部１２、生成部１２ａ、および並替部１２ｂが親機１のコア４に対応する。また、データ送受部２１、および特性演算部２３は、子機２の処理装置６に対応し、特に、特性演算部２３が子機２のコア７に対応する。
【００２２】
親機１は、並列処理装置１００の外部から入力データを受信し、電波伝搬シミュレーションにより得られた受信電力分布Ｐを出力する。受信電力分布Ｐは、送信源から放射された電波が受信エリア内に存在する複数の受信点に到達したときの受信電力値をまとめて示すものである。外部からの入力データは、電波の送信源の位置座標などに関する送信源データＳ、複数の受信点の位置座標の集合である受信エリアデータＲ、送信源と受信エリアの周辺に存在する複数の構造物の集合である構造物群に関する構造物データＢ、および受信電力分布Ｐの計算に必要な領域に関する情報を含む。本実施の形態では、位置座標として３次元座標を用いる。また、それぞれの構造物に関するデータには、構造物の各頂点の３次元位置座標、内角、および材質定数が含まれる。
【００２３】
親機のデータ送受部１１は、外部からの入力データを受信してデータ並替部１２へ転送する。また、子機２において算出された受信電力値を受信して受信電力値記憶部１６へ格納するとともに、受信電力値記憶部１６へ格納された受信電力値を用いて受信電力分布Ｐを生成し、外部へ出力する。なお、本実施の形態では、受信電力値から受信電力分布Ｐを生成して出力しているが、受信電力値を外部へ出力してもよい。
【００２４】
データ並替部１２は、送信源から受信エリアまで電波をレイトレースし、レイトレースにより発生した全電波の伝搬経路を示すデータを受信点ごとに伝搬経路順に並べ替える。
より具体的には、生成部１２ａは、データ送受部１１から転送された入力データを用いて、送信源から受信エリアまでの電波をレイトレースし、レイトレースにより発生した全電波の伝搬経路を示すデータを並べ替え前データ記憶部１３へ登録する。これにより、全電波の伝搬経路を示すデータのテーブルが並べ替え前データ記憶部１３に生成される。なお、以降の説明では「電波の伝搬経路を示すデータ」を単に「電波のデータ」または「電波データ」と呼ぶことがある。
また、並替部１２ｂは、並べ替え前データ記憶部１３に生成されたテーブル、および受信エリアデータＲに基づいて、受信エリアに到達する電波データを抽出し、抽出した電波データを受信点ごとに伝搬経路順に並べ替えて並べ替え後データ記憶部１４へ格納する。これにより、受信点ごとに伝搬経路順に並べ替えられた電波データのテーブルが並べ替え後データ記憶部１４に生成される。
レイトレースと並べ替えの詳細な処理については、後述する。
【００２５】
データ割当部１５は、並べ替え後データ記憶部１４に格納されたテーブルを子機２のデータ送受部２１で受信可能なサイズに分割し、データ通信により子機のデータ送受部２１に転送する。転送されたデータは、複数の特性演算部２３で並列に演算処理される。
【００２６】
子機２のデータ送受部２１は、データ割当部１５から受信したデータを分割データ記憶部２２へ格納する。また、データ送受部２１は、特性演算部２３で算出された受信電力値を分割データ記憶部２２から読み出し、データ通信により親機のデータ送受部１１に転送する。
特性演算部２３は、分割データ記憶部２２にアクセスし、分割データ記憶部２２に格納されたデータを用いて受信電力値の演算を行い、演算結果を分割データ記憶部２２に格納する。複数の特性演算部２３は、分割データ記憶部２２のうち、それぞれ割り当てられた領域にアクセスして並列に演算を行う。
【００２７】
このように、並べ替え後の電波のデータを分割して親機１から子機２へ転送し、子機２で算出した受信電力値を親機１へ転送する処理を繰り返し行うことで、受信電力値記憶部１６には、各受信点の受信電力値が格納され、最終的に受信電力分布Ｐを得ることができる。以上が本実施の形態の全体の処理の流れである。
【００２８】
次に、レイトレース法を用いた電波データの生成処理について、図を参照して説明する。図３は、水平方向でのレイトレース法の一例を示す説明図で、ｘｙｚ軸で示される空間のｘ軸とｙ軸に平行な平面上でレイトレース処理を行った場合の電波データを示す。
【００２９】
図に示すように、送信源３０から複数の電波５０〜５４が離散的に放射される。放射される電波の本数は、外部からの入力データによって設定され、１本以上であれば任意の本数で構わない。図では、電波の伝搬経路の一例として、送信源３０から放射された複数の電波５０〜５４のうち、一本の電波５２が構造物３３，３４と衝突しながら受信エリア４０に到達するまでの経路を太い実線で示す。
【００３０】
送信源３０から放射された電波５２は、構造物３３と衝突する。このときの衝突点３１から新たに複数の電波が発生する。発生した電波をさらにレイトレースで追跡する。衝突点３１で発生した複数の電波のうち、電波５５は構造物３４と衝突し、衝突点３２から新たに複数の電波が発生する。新たな電波の発生手順の繰り返し回数の上限は、外部からの入力データによって決定される。図では、一部の電波の経路を図示しているが、実際には、決定された回数だけ電波を繰り返し発生させ、新たに発生させた全ての電波についてレイトレースが行われる。電波と構造物とが衝突した際に発生する電波の数は、１本以上であれば任意の数で構わない。新たな電波の発生手順の繰り返しが終了したら、レイトレースによって発生した電波が、受信エリア４０内の受信点４１〜４８に到達したか否かを判定する。
【００３１】
ここで、電波が受信点に到達したか否かの判定方法について、図を参照して説明する。図４は、レイトレース法における電波が受信点に到達したか否かの判定基準を説明する図で、電波の発生点６０から放射される電波６１が受信点６４に到達したか否かの判定方法を示す。図において、受信エリアに含まれる受信点６４から電波６１に垂線を下し、電波６１と垂線との交点である点６５から電波の発生点６０までの距離をｌ、受信点６４から点６５までの距離をｄとする。また、電波６１の方位角をφ、電波６２と電波６３との間の角度をφとし、電波６１が電波６２と電波６３の中間に存在する。このとき、電波６１が受信点６４に到達するか否かは、式（１）の条件により決定される。つまり、式（１）が真と判断された場合、電波６１は受信点６４に到達したとみなされる。
【００３２】
2017203617.tif 000003
【００３３】
再び、図３に示すレイトレース法を用いた電波データの生成処理の説明に戻る。
発生した全ての電波とそれぞれの受信点４１〜４８との組み合わせにおいて、式（１）に示す受信点到達の条件が判定され、その結果に基づいて、各受信点に到達した電波が抽出される。具体的には、電波５６は、受信点４２に到達した電波として判断され、抽出される。
【００３４】
次に、電波５６が送信源３０から伝わってきた経路が判断される。電波のデータ構造の中には、その電波の発生元を示す情報が含まれる。よって、電波５６のデータ構造に含まれる情報を確認することで、電波５６の発生が電波５５によるものと判断することができる。さらに電波の発生元を辿ると、電波５５の発生元は電波５２と判断され、最終的に電波５２は送信源３０から発生したと判断される。その結果、送信源３０から受信点４２までの伝搬経路の一つとして、電波５２から電波５５、電波５５から電波５６が得られる。以上のような処理により、受信点４１〜４８に到達したと判断された全ての電波において、送信源３０から受信点４１〜４８までの全伝搬経路が抽出される。
【００３５】
このようなレイトレース処理により、送信源３０から受信エリア４０までの全ての電波の伝搬経路が決定すると、各受信点４１〜４８における電波の電界強度（受信電力値とも言う）が算出される。具体的には、まず、１本の伝搬経路に含まれる各電波の電界強度を積算し、受信利得と合成することで、１本の伝搬経路による電波強度が求まる。次に、１つの受信点に到達する全ての伝搬経路の電波強度を積算することで、その受信点における受信電力値が求まる。さらに、各受信点の受信電力値が求まると、受信電力分布Ｐが得られる。なお、本発明の並列処理装置１００では、送信源から放射された電波から全ての電波をレイトレースする処理を生成部１２ａが担う。また、レイトレースにより発生した電波データを電波強度の算出に適した配置に並べ替える処理を並替部１２ｂが担う。さらに、並べ替え後のデータを用いて電波強度を並列に算出する処理を子機２の特性演算部２３が担う。
【００３６】
次に、レイトレース処理により発生した電波データの並べ替え処理、および電波強度の算出処理について説明する。
【００３７】
生成部１２ａは、送信源から発生した電波のデータと、構造物の接触により増加した電波のデータ、すなわちレイトレースにより発生した全ての電波のデータを並べ替え前データ記憶部１３に格納する。このとき、生成部１２ａは、送信源から発生した順番に電波データを格納する。よって、並べ替え前データ記憶部１３に生成されたテーブルには、レイトレースで発生した順番に電波データが並ぶ。
【００３８】
並替部１２ｂは、並べ替え前データ記憶部１３に格納された電波データと受信エリアデータＲとを用いて、式（１）に示す受信点と電波との位置関係を計算し、受信点に電波が到達しているか否かを判断する。各受信点に到達したと判断された電波データは、伝搬経路順に並べ替え後データ記憶部１４に格納される。その結果、並べ替え後データ記憶部１４には、受信点ごとに伝搬経路順に並び替えられた電波データのテーブルが生成される。
【００３９】
データ割当部１５は、並べ替え後データ記憶部１４に生成されたテーブルを分割し、子機２のデータ送受部２１に送信する。データ送受部２１は、データ割当部１５から受信したデータを分割データ記憶部２２に格納する。複数の特性演算部２３は、分割データ記憶部２２に格納されたデータのうち、それぞれ割り当てられたデータを用いて、伝搬経路を構成する電波の電波強度の演算を並列に行う。さらに、複数の特性演算部２３は、各受信点に到達する全ての電波の電波強度を受信点ごとに積算し、各受信点における受信電力値を算出する。演算結果は、分割データ記憶部２２に格納され、データ送受部２１から親機１へ転送され、受信電力値記憶部１６に格納される。以上のように、分割したテーブルについて全て処理することで、最終的に親機１の受信電力値記憶部１６に格納された演算結果から受信電力分布Ｐが導出される。
【００４０】
次に、レイトレースにより発生した電波データの並べ替え処理について、図を参照して、さらに詳しく説明する。図５は、発生順に格納された電波データを受信点ごとに伝搬経路順に並べ替える処理の一例を示す説明図である。図において、テーブル１１０は、レイトレースによって生成された電波データのテーブル、テーブル１２０は、受信点ごとに伝搬経路順に並べ替えられた電波データのテーブルである。テーブル１１０は並べ替え前データ記憶部１３に格納され、テーブル１２０は並べ替え後データ記憶部１４に格納される。図中に示す白および網掛けの正方形が、１つの電波のデータを表す。以下では、図３に示す電波を用いて、図５に示す並べ替え処理を説明する。
【００４１】
テーブル１１０には、レイトレース処理によって生成された電波のデータが、送信源３０から発生した順に載せられる。具体的には、まず、電波５０のデータがテーブル１１０に載せられ、続いて、電波５１、電波５２、電波５３のデータがこの順、つまりレイトレース処理で発生した順に、テーブル１１０に載せられる。その後、電波５０から発生した電波のデータがテーブル１１０に追加され、追加が終了すると、次に、電波５１から発生した電波のデータがテーブル１１０に追加される。このように、発生した順に電波データをテーブル１１０に載せ、その後、テーブル１１０に載せた電波からさらに発生する電波のデータがテーブル１１０に追加される。このため、テーブル１１０内の電波データは、送信源３０から受信エリア４０までの伝搬経路順ではなく、送信源３０からレイトレース処理により発生した順番に並ぶ。
【００４２】
ここで、図３に伝搬経路の一例として示した電波５２，５５，５６のデータが、図５に示す電波データ１１１，１１２，１１３としてテーブルに載せられたとする。テーブル１１０に載せられた電波のデータには、どの電波から発生したか示す発生元の電波の番号、どの構造物から発生したか示す構造物の情報、発生した電波自身の方向ベクトルと始点座標、および送信源から始点座標までの距離が含まれる。始点座標の情報は、２次元でも３次元でも構わない。２次元の場合は、最終的に受信点に到達したか否かを、水平方向と垂直方向で解析することになるが、３次元の場合より演算の負荷は小さい。
【００４３】
一方、並べ替え後の電波データが載せられるテーブル１２０は、受信点ごとの専用テーブル１２１〜１２８により構成され、図３に示す受信エリア４０内の受信点４１〜４８に到達する電波データは、専用テーブル１２１〜１２８にそれぞれ載せられる。つまり、受信点４１に到達する電波データは専用テーブル１２１、受信点４２に到達する電波データは専用テーブル１２２、受信点４３に到達する電波データは専用テーブル１２３に載せられる。よって、図３において、受信点４２に到達する電波の伝搬経路として抽出された電波５２，５５，５６は、並替部１２ｂによる並べ替え処理により、専用テーブル１２２にこの順番で連続して載せられる。つまり、テーブル１１０から抽出された電波データ１１１，１１２，１１３は、並べ替え処理により、専用テーブル１２２の電波データ１３１，１３２，１３３となる。
以上のように、電波データの並べ替え処理により、テーブル１１０内で離散的に配置されていた電波データ１１１，１１２，１１３は、専用テーブル１２２内に連続的に配置される。
【００４４】
なお、テーブル１１０から電波データを抽出する際には、受信点ごとに、テーブル１１０に登録された順番が早い電波データから受信点に到達したか否かを判断し、到達したと判断された場合に電波データを抽出する。しかし、これに限定するものではなく、テーブル１１０に登録された順番が遅い電波データから受信点に到達したか否かを判断しても構わない。
【００４５】
次に、電波データの並べ替えを行う理由について説明する。
電波データのテーブル１１０は、このサイズ、および配置のまま子機２のデータ送受部２１へ送信すると、子機２のメモリサイズに納まらない可能性がある。また、特性演算部２３が受信電力値を算出する際、レイトレース処理で発生した順に電波データが並べられたテーブルを、伝搬経路順にアクセスすると、不規則的なメモリ参照となり、演算の効率が低下する。
【００４６】
そこで、本実施の形態の並列処理装置１００では、受信点ごとに伝搬経路順に電波データを並べ替えたテーブル１２０を作成し、テーブル１２０のうち、並べ替えが完了した部分から子機２へ送信して、特性演算部２３で受信電力値の演算を並列に行うように構成する。具体的には、親機１のデータ割当部１５は、並べ替え処理によって再構成されたテーブルを、子機２のデータ送受部２１が受信可能なサイズ、または子機２のキャッシュメモリのサイズ以下となるように分割し、分割したテーブルと対応する受信点を示す情報とを子機２のデータ送受部２１に順に送信する。
子機２のデータ送受部２１は、分割されたテーブルを順番に受信して分割データ記憶部２２に格納する。子機２の複数の特性演算部２３は、分割データ記憶部２２のそれぞれ割り当てられた領域にアクセスして各受信点の受信電力値の演算を行い、演算結果を分割データ記憶部２２に格納する。子機２のデータ送受部２１は、分割データ記憶部２２から読み出した演算結果を親機１のデータ送受部１１へ送信する。
【００４７】
図６は、テーブルの分割方法の一例を示す説明図である。図６（ａ）は、並べ替え処理後のテーブル１２０を受信点ごと、つまり、専用テーブルごとに分割する場合、図６（ｂ）は、並べ替え処理後のテーブル１２０を１本の伝搬経路ごとに分割する場合を示す。図中の点線は、分割された範囲を示す。図６（ａ）に示すように、テーブルを受信点ごとに分割して子機２へ送信する場合には、受信電力値の演算処理が１本の伝搬経路ごとに１つの特性演算部２３に割り当てられ、それぞれの特性演算部２３が複数の伝搬経路による受信電力値を並列に演算する。図６（ｂ）に示すように、テーブルを１本の伝搬経路ごとに分割して子機２へ送信する場合には、受信電力値の演算処理が１つの受信点ごとに１つの特性演算部２３に割り当てられ、それぞれの特性演算部２３が複数の受信点による受信電力値を並列に演算する。
【００４８】
このように構成することにより、並べ替え後データ記憶部１４に格納されたテーブル１２０を局所的に分割して子機２のデータ送受部２１へ送信することができる。また、特性演算部２３は、親機１のデータ割当部１５からデータ送受部２１に送られたデータを使用して受信電力を計算する。このとき、データ割当部１５によりそれぞれの特性演算部２３に割り当てられた電波データは、既に伝搬経路順に並べ替えられているので、複数の特性演算部２３は、親機１から受信したテーブルに並列、かつ規則的にアクセスすることができる。以上のように、電波伝搬シミュレーションのアルゴリズムに電波データの並べ替え処理を追加することで、規則的に演算を行うことが可能となり、演算を高効率化することができる。
【００４９】
次に、図７，８のフローチャートを参照しながら、本発明の並列処理装置１００を用いた並列処理方法について説明する。図７は、並列処理装置１００の全体の動作を示すフローチャートである。図８は、並替部１２ｂの動作を示すフローチャートである。
【００５０】
図７において、生成部１２ａは、送信源から発生する電波を外部データで定められた本数分だけ生成し、生成した電波のデータを発生順にテーブルに登録する（ステップＳ１）。次に、生成部１２ａは、新たに発生した電波の有無、つまり、新たに発生した電波データがテーブルへ登録されたか否かを判断する（ステップＳ２）。新たに発生した電波が有る場合は、その電波と構造物との衝突の判断（ステップＳ３）へ進み、新たに発生した電波が無い場合は、受信点に到達する電波の抽出（ステップＳ６）へ進む。
ステップＳ３において、生成部１２ａは、新たに発生した各電波と構造物との衝突の有無を判断する。衝突した電波が有る場合は、新しい電波を発生させてデータをテーブルに追加登録し（ステップＳ４）、その後、指定回数繰り返しの判断（ステップＳ５）へ進む。衝突が無い場合は、受信点に到達する電波の抽出（ステップＳ６）へ進む。
ステップＳ５において、生成部１２ａは、ステップＳ２からステップＳ４までの処理の繰り返し回数が外部から指定された回数に到達したか否かを判断する。指定された回数に達しない場合は、新たに発生した電波の有無の判定（ステップＳ２）へ戻る。指定された回数に達した場合は、受信点に到達する電波の抽出（ステップＳ６）へ進む。
ステップＳ２において、生成部１２ａは、再度、新たに登録された電波の有無を確認し、有る場合は、再度、構造物との衝突有無を確認する（ステップＳ３）。
以上のように、ステップＳ２からステップＳ４の処理を所定の回数繰り返すことで、発生した全電波のデータを登録したテーブルが完成する。
【００５１】
次に、並替部１２ｂは、受信エリアデータＲを用いて、全電波のデータを登録したテーブルの中から、受信点に到達する電波を抽出する（ステップＳ６）。受信点に到達した電波の抽出を終えると、並替部１２ｂは、抽出した電波の発生元を送信源まで辿り、全伝搬経路を判定する。その際、受信点から送信源までの伝搬経路を辿りながら、対応する電波データがテーブルから順番に読み出され、読み出された順に新しいテーブルに登録される。その結果、ステップＳ２からステップＳ５の処理でテーブルに登録された電波のデータが、受信点ごとに全伝搬経路順に並べ替えられる（ステップＳ７）。この並べ替えにより、最終的には、受信点ごとに伝搬経路順に並べ替えられた電波データのテーブルが生成される。
次に、データ割当部１５は、受信点ごとに伝搬経路順に並べ替えられたテーブルを分割して子機２のデータ送受部２１へ送信する（ステップＳ８）。子機２の複数の特性演算部２３は、子機２のデータ送受部２１が受信したデータを用いて各受信点の受信電力値を並列に演算する（ステップＳ９)。子機２のデータ送受部２１は、各受信点の受信電力値を親機１のデータ送受部１１へ送信する（ステップＳ１０）。演算結果は、親機１内の受信電力値記憶部１６に格納される。
以上のように、ステップＳ６からステップＳ１０の処理を受信エリア内の全受信点について実行するまで繰り返す（ステップＳ１１）ことで、最終的に、受信電力値記憶部１６に受信電力分布Ｐが作成される。
【００５２】
なお、図７に示すフローチャートでは、“親機１から子機２へのデータ送信（ステップＳ８）”“子機２内での電力演算（ステップＳ９）”“子機２から親機１への演算結果の送信（ステップＳ１０）”の３つの処理を逐次的に行う手順を示したが、これに限定するものではなく、３つの処理をパイプラインで非同期的に行ってもよい。本実施の形態の並列処理装置１００において、パイプライン処理したときの動作は、後ほど詳細に説明する。
【００５３】
次に、図８を参照して、各受信点に到達する電波の抽出処理（ステップＳ６）と各受信点における全伝搬経路の並べ替え処理（ステップＳ７）について、さらに詳細に説明する。
【００５４】
並替部１２ｂは、受信エリア内の複数の受信点の中から、受信点Ｘを選択する（ステップＳ２０）。最終的には全ての受信点において判断するため、受信エリアのどの受信点から開始しても構わない。
次に、並替部１２ｂは、ステップＳ２からステップＳ５の繰り返しにより得られた、全電波のデータを登録したテーブルから電波データを選択する（ステップＳ２１）。ステップＳ２１においては、テーブルに登録された順番が早い電波データから順に選択してもよいし、遅い電波データから順に選択してもよい。
次に、受信点Ｘの位置座標のデータを用いて、ステップＳ２１で選択した電波データが受信点Ｘに到達したか否かを判断する（ステップＳ２２）。受信点Ｘに到達した場合は、電波の伝搬経路の抽出（ステップＳ２３）へ進み、受信点Ｘに到達しない場合は、繰り返し回数がテーブルに登録した電波数に到達したか否かの判断（ステップＳ２５）へ進む。
ステップＳ２３において、並替部１２ｂは、受信点Ｘに到達したことが確認できた電波の送信源から受信点Ｘまでの伝搬経路を示す全ての電波データをテーブルから抽出する。その後、並替部１２ｂは、抽出した電波データを送信源から受信点Ｘまでの伝搬経路順に並べ替えて新しいテーブルに登録する（ステップＳ２４）。
【００５５】
ここで、ステップＳ２３，Ｓ２４について、図５に示す電波を用いて具体的に説明する。テーブル１１０の中の電波データ１１３が受信点Ｘに到達したと判断されたと仮定すると、並替部１２ｂは、電波データ１１３と電波データ１１３の伝搬経路を示す電波データとをテーブル１１０から抽出する。例えば、テーブル１１０の中の電波データ１１１，１１２が電波データ１１３の伝搬経路に該当する場合、電波データ１１１，１１２，１１３が抽出される。そして、並替部１２ｂは、電波データ１１１，１１２，１１３を伝搬経路順に並べ替えて受信点Ｘの専用テーブルに登録する。よって、テーブル１１０の中の電波データは、それぞれ受信点ごとの専用テーブルに伝搬経路順に並び替えられて登録される。以上の処理を、テーブル１１０に登録されている全ての電波に対して行う。
【００５６】
次に、本実施の形態の並列処理装置１００において、パイプライン処理したときの動作について説明する。図９は、パイプライン処理の一例を示す説明図で、“親機から子機へのデータ送信”“子機内での電力演算”“子機から親機へのデータ送信”“親機での次の受信点に対応する並べ替え（「親機での並べ替え前処理」とも言う）”をパイプライン方式で実行したときの動作を示す図である。図において、パイプラインＡ，Ｂ，Ｃがそれぞれ異なる分割データを用いた処理を表し、矢印が“親機から子機へのデータ送信”“子機内での電力演算”“子機から親機へのデータ送信”“親機での並べ替え前処理”の各処理を表す。
【００５７】
パイプラインＡでは、受信点Ａに到達する電波データが処理される。同様に、パイプラインＢでは受信点Ｂに到達する電波データ、パイプラインＣでは受信点Ｃに到達する電波データがそれぞれ処理される。また、それぞれのパイプラインでは、（ａ）親機での並べ替え前処理２０１，２１１，２２１、（ｂ）親機から子機へのデータ送信処理２０２，２１２，２２２、（ｃ）子機内での電力演算処理２０３，２１３，２２３、（ｄ）子機から親機へのデータ送信処理２０４，２１４，２２４がそれぞれ（ａ）〜（ｄ）の順に行われる。
【００５８】
図７のフローチャートでは、パイプラインＡの処理、つまり、受信点Ａの処理２０１，２０２，２０３，２０４が終了した後に、パイプラインＢの処理、つまり、受信点Ｂの処理２１１，２１２，２１３，２１４が開始される。しかし、この方式では、受信点Ｂの（ａ）親機での並べ替え前処理と（ｂ）親機から子機へのデータ送信処理、受信点Ａの（ｄ）子機から親機へのデータ送信処理がボトルネックとなる。
【００５９】
そこで、図９に示すパイプライン方式では、受信点Ａにおける子機内での電力演算処理２０３の開始と同時に、受信点Ｂの（ａ）親機での並べ替え前処理２１１が実行され、その後、（ｂ）親機から子機へのデータ送信処理２１２が実行される。
また、受信点Ｂの（ｃ）子機内での電力演算処理２１３の開始と同時に、受信点Ａの（ｄ）子機から親機へのデータ送信処理２０４が開始され、同時に、受信点Ｃの（ａ）親機での並べ替え前処理２２１と（ｂ）親機から子機へのデータ送信処理２２２が実行される。
【００６０】
このように、親機と子機とで同時に処理を行い、（ｂ）親機から子機へのデータ送信処理、（ｃ）子機内での電力演算処理、（ｄ）子機から親機へのデータ送信処理をパイプライン処理することで、親機と子機との間のデータ転送のオーバーヘッドを隠蔽することができる。このとき、データの送受信を非同期的に行うことで、パイプライン処理を実現することができる。さらに、（ｃ）子機内での電力演算処理の実行中に、（ａ）親機での並べ替え前処理を実行することで、並べ替え処理のオーバーヘッドも隠蔽することができる。その結果、電波伝搬シミュレーションを高速化することができる。
【００６１】
また、本実施の形態の並列処理装置１００においては、データの並べ替え処理、および分散処理によるデータ送受信の通信の追加により、従来と比較して処理が増加するが、パイプライン処理を実現することで、全体として処理時間を短縮することができる。
【００６２】
なお、上述したパイプライン方式は、（ｃ）子機内での電力演算処理にかかる時間が、（ａ）親機での並べ替え前処理と（ｂ）親機から子機へのデータ送信処理に要する時間よりも長い場合に、シミュレーションの高速化に貢献できる。（ｃ）子機内での電力演算処理にかかる時間のほうが短い場合は、逐次的に処理を行う構成にしても構わない。
【００６３】
以上のように、本実施の形態の並列処理装置によれば、親機と複数の特性演算部を有する子機とで構成され、送信源から放射される波が受信エリア内の受信点に到達したときの受信点における受信特性を並列に演算し、親機は、送信源から受信点に至る波の伝搬経路を追跡するレイトレース処理を行い、レイトレース処理により得られた波の経路を示すデータを伝搬経路順に並べ替えるデータ並替部と、データ並替部で並べ替えた波の経路を示すデータを分割して複数の特性演算部にそれぞれ割り当てるデータ割当部とを備え、子機は、データ割当部で割り当てられた波の経路を示すデータを用いて受信点における受信特性を複数の特性演算部で並列に演算するので、レイトレース法を用いた演算処理において、メモリ領域への規則的なアクセスが可能となり、処理時間を短縮することができる。
【００６４】
また、本実施の形態の並列処理装置によれば、複数の受信点における受信特性を並列に演算し、データ並替部は、レイトレース処理により得られた波の経路を示すデータを到達する受信点ごとに伝搬経路順に並べ替え、データ割当部は、データ並替部で並べ替えた波の経路を示すデータを到達する受信点ごとに分割して複数の特性演算部にそれぞれ割り当て、複数の特性演算部は、データ割当部で割り当てられた波の経路を示すデータを用いて複数の受信点における受信特性をそれぞれ並列に演算するようにしたので、複数の受信点における受信電力を並列に演算する場合においても、メモリ領域への規則的なアクセスが可能となり、処理時間を短縮することができる。
【００６５】
また、本実施の形態の並列処理装置によれば、親機と子機とは独立した作業バッファ領域を有し、子機における受信特性の演算処理と、親機から子機へのデータ送信処理と、子機から親機へのデータ送信処理と同時に行うようにしたので、それぞれの処理を同時実行するようなパイプライン処理を実現することが可能となり、親機と子機との間のデータ転送のオーバーヘッドを隠蔽することができる。
【００６６】
また、本実施の形態の並列処理装置によれば、データ並替部は、データ割当部で割り当てられた波の経路を示すデータを用いて特性演算部が受信特性を演算する間に、特性演算部における次の演算で用いるデータの並べ替えを行うようにしたので、データの並べ替え処理のオーバーヘッドを隠蔽することができる。
【００６７】
また、本実施の形態の並列処理装置によれば、データ割当部は、並べ替え後の波の経路を示すデータを子機のキャッシュメモリのサイズ以下に分割して子機へ送信するようにしたので、処理装置から高速にアクセスすることが可能なメモリ領域に適したサイズで効率的にデータを転送することができる。
【００６８】
また、本実施の形態の並列処理装置によれば、親機はＣＰＵとし、子機は親機とバスで接続されたＧＰＵとし、親機と子機との間のデータ送受信処理がバスを跨ぐ場合には通信で処理されるようにしたので、計算機で並列処理装置を構成する場合も、レイトレース法を用いた演算処理の処理時間を短縮することができる。
【００６９】
また、本実施の形態の並列処理装置によれば、並べ替え処理に要する時間が受信電力値の演算時間よりも短い場合には、並べ替え処理と受信電力値の演算とを同時実行する構成を採用する。例えば、親機での受信点Ａのテーブルの並べ替えが終了した後、子機は、受信点Ａにおける受信電力値の演算を開始する。これと同時に、親機１は受信点Ｂのテーブルの並べ替え処理を開始する。このように、子機が受信点Ｘで受信電力の演算処理を行っている間に、親機で受信点Ｘ＋１のテーブルの並べ替え処理を行うことで、シミュレーションを短時間で完了することができる。
【００７０】
なお、本発明はその発明の範囲内において、任意の構成要素の変形、もしくは任意の構成要素の省略が可能である。
【符号の説明】
【００７１】
１  親機、２  子機、３  処理装置、４  コア、５  メモリ、６  処理装置、７  コア、８  メモリ、９  通信部、１１  データ送受部、１２  データ並替部、１２ａ  生成部、１２ｂ  並替部、１３  並べ替え前データ記憶部、１４  並べ替え後データ記憶部、１５  データ割当部、１６  受信電力値記憶部、２１  データ送受部、２２  分割データ記憶部、２３  特性演算部、１００  並列処理装置。
【図１】
2017203617.tif 000004
【図２】
2017203617.tif 000005
【図３】
2017203617.tif 000006
【図４】
2017203617.tif 000007
【図５】
2017203617.tif 000008
【図６】
2017203617.tif 000009
【図７】
2017203617.tif 000010
【図８】
2017203617.tif 000011
【図９】
2017203617.tif 000012
【国際調査報告】
2017203617.tif 000013
2017203617.tif 000014
2017203617.tif 000015