(57)【要約】【課題】最適な鏡面の形状を短時間で計算することができるようにする。【解決手段】ＧＰＵのコアグループ２である形状計算処理部１３ａ〜１３ｄが、領域分割処理部１１により自己に割り当てられていない小領域の形状については変化がないものとして、自己に割り当てられた小領域の形状の最適化計算を実行する。これにより、最適化計算の途中段階で、各々の小領域の最適化計算間の同期を図ることなく、独立して、各々の小領域の形状の最適化計算を行うことができるようになる。【選択図】図１
2014044565.tif 000002
【特許請求の範囲】
【請求項１】
形状の最適化計算を実行する複数の演算器と、
形状の最適化計算の実行対象である鏡面を複数の領域に分割する領域分割手段と、
上記複数の演算器に対して、上記領域分割手段により分割された各々の領域を割り当てる領域割当手段とを備え、
上記複数の演算器は、上記領域割当手段により自己に割り当てられていない領域の形状については変化がないものとして、自己に割り当てられた領域の形状の最適化計算を実行する
ことを特徴とする並列処理装置。
【請求項２】
複数の演算器における最適化計算の実行結果である各々の領域の最適形状から、鏡面の全体形状を特定する全体形状特定手段を備えたことを特徴とする請求項１記載の並列処理装置。
【請求項３】
全体形状特定手段は、鏡面の全体形状が鏡面形状に関する制約を満足しているか否かを判定し、上記制約を満足していなければ、形状の最適化計算を再実行する領域を特定し、上記領域が割り当てられている演算器に対して、最適化計算の再実行を指示することを特徴とする請求項２記載の並列処理装置。
【請求項４】
全体形状特定手段は、鏡面の全体形状が収束しているか否かを判定し、鏡面の全体形状が最適な形状へ収束していれば、最適化計算の終了を複数の演算器に通知することを特徴とする請求項２または請求項３記載の並列処理装置。
【請求項５】
領域分割手段により分割された各々の領域の初期の形状が円多項式で表現されている場合、
複数の演算器は、上記領域割当手段により自己に割り当てられた領域の形状の最適化計算を実行する際、当該領域に係る円多項式から、当該領域の初期の形状を特定する
ことを特徴とする請求項１から請求項４のうちのいずれか１項記載の並列処理装置。
【請求項６】
複数の演算器は、遺伝的アルゴリズムを利用して、自己に割り当てられた領域の形状の最適化計算を実行する場合、
解候補の集団を生成する処理と、
解候補毎に当該領域の形状の最適化計算を実行する処理と、
生成済みの解候補の中から、当該領域に関する評価値が高い解候補を複数選択し、その選択した複数の解候補から新たな解候補を生成する処理とを繰り返し実施したのち、
新たな解候補と元の解候補の集団の中から、新たな解候補の集団を選択する
ことを特徴とする請求項１から請求項５のうちのいずれか１項記載の並列処理装置。
【請求項７】
演算器はＧＰＵで構成されており、領域分割手段及び領域割当手段はＣＰＵで構成されていることを特徴とする請求項１記載の並列処理装置。
【請求項８】
領域分割手段が、形状の最適化計算の実行対象である鏡面を複数の領域に分割する領域分割処理ステップと、
領域割当手段が、形状の最適化計算を実行する複数の演算器に対して、上記領域分割処理ステップで分割された各々の領域を割り当てる領域割当処理ステップとを備え、
上記複数の演算器が、上記領域割当処理ステップで自己に割り当てられていない領域の形状については変化がないものとして、自己に割り当てられた領域の形状の最適化計算を実行する
ことを特徴とする並列処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、反射鏡アンテナを設計する際、アンテナの鏡面の最適な形状を決定する並列処理装置及び並列処理方法に関するものである。
【背景技術】
【０００２】
反射鏡アンテナの設計では、アンテナの鏡面から放射される電波の強度（利得値）が、観測エリアに対して高くなるように行われる。
このとき、アンテナの鏡面の形状が円多項式で表現される場合、円多項式における各項の係数が求める値になる。
アンテナ鏡面の形状の最適化計算を行う場合、一般的に、円多項式における各項の係数（以下、「係数行列」と称する）に初期値を与え、評価値が改善するように係数行列の値を修整しながら、下記の（１）〜（３）の処理を繰り返し実施することで、最適な鏡面形状が得られる（例えば、非特許文献１を参照）。
【０００３】
（１）円多項式から鏡面形状に変換する処理
（２）電磁界計算（例えば、物理光学法）によって鏡面形状から観測点毎の利得値を計算する処理
（３）観測点毎の利得値と評価関数に基づいて評価値を計算する処理
これらの処理では、演算量が膨大であるため、従来は、最適解の探索能力が高いアルゴリズム（例えば、遺伝的アルゴリズム）を利用することが多い。
【０００４】
以下の非特許文献２には、アンテナ鏡面の最適化計算における解候補の生成方法を示すことで、アンテナ鏡面の設計に対して、遺伝的アルゴリズムを適用することが開示されている。
遺伝的アルゴリズムでは、複数の解候補を保持して、下記の（１）〜（３）の処理を繰り返し実施することで、評価値を改善している。
（１）各解候補の評価値を計算する処理
（２）評価値と確率値に基づいて、解候補のペアを生成する処理
（３）解候補のペアから新たな解候補を生成する処理
【０００５】
遺伝的アルゴリズムは、解候補の数が多くなるほど、評価値計算や解候補生成の処理回数が増加するため、必要な処理時間が長くなる。
この処理時間を短縮する方法として、解候補単位で処理を並列化する方法が非特許文献３に開示されており、また、各々の計算を複数の演算器で並列化する方法が非特許文献４に開示されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Duan，D. - W. and Rahmat-Samii，Y. 著、「A Generalized Diffraction Synthesis Technique for High Performance Reflector Antennas」、IEEE Transactions on Antennas and Propagation，Vol. 43，No. 1，pp. 27-40，1995.
【非特許文献２】Avila，S. et al. 著「Optimization of an Offset Reflector Antenna Using Genetic Algorithms」、IEEE Transactions on Magnetics，Vol. 40，No. 2，pp. 1256-1259，2004.
【非特許文献３】Cantu-Paz，E.著「A Survey of Parallel Genetic Algorithm」、IllGAL Report 97003，The University of Illinois，1997.
【非特許文献４】Oiso，M.，et al.著、「Implementing Genetic Algorithms To CUDA Environment Using Data Parallelization」、Technical Gazette，Vol. 18，No. 4，pp. 511-517，2011.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の遺伝的アルゴリズムは以上のように構成されているので、解候補の数が多くなるほど、評価値計算や解候補生成の処理回数が増加して処理時間が長くなる。この処理時間を短縮するために、遺伝的アルゴリズムを非特許文献３に開示されている方法で並列化する場合、評価値の計算対象である解候補の集合を分割して並列に計算することになる。しかし、１つの解候補に対する評価値の計算処理は分割できないため、その計算処理を並列に実行することができず、計算処理の高速化を図ることができない。
一方、遺伝的アルゴリズムを非特許文献４に開示されて方法で並列化する場合、１つの解候補に対する評価値の計算処理を分割して並列に実行することができるため、非特許文献３に開示されている方法で並列化する場合よりも、計算処理の高速化を図ることができる。しかし、計算処理の途中段階において、並列処理間で同期をとる必要があるため、計算処理の高速化を飛躍的に高めることができない課題があった。
【０００８】
この発明は上記のような課題を解決するためになされたもので、最適な鏡面の形状を短時間で計算することができる並列処理装置及び並列処理方法を得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る並列処理装置は、形状の最適化計算を実行する複数の演算器と、形状の最適化計算の実行対象である鏡面を複数の領域に分割する領域分割手段と、複数の演算器に対して、領域分割手段により分割された各々の領域を割り当てる領域割当手段とを備え、複数の演算器が、領域割当手段により自己に割り当てられていない領域の形状については変化がないものとして、自己に割り当てられた領域の形状の最適化計算を実行するようにしたものである。
【発明の効果】
【００１０】
この発明によれば、複数の演算器が、領域割当手段により自己に割り当てられていない領域の形状については変化がないものとして、自己に割り当てられた領域の形状の最適化計算を実行するように構成したので、最適化計算の途中段階で、各々の領域の最適化計算間の同期を図ることなく、独立して、各々の領域の形状の最適化計算を行うことができるようになり、その結果、最適な鏡面の形状を短時間で計算することができる効果がある。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態１による並列処理装置を示す構成図である。
【図２】この発明の実施の形態１による並列処理装置の構成要素であるＣＰＵとＧＰＵとの処理の役割関係を示す説明図である。
【図３】この発明の実施の形態１による並列処理装置の処理内容（並列処理方法）を示すフローチャートである。
【図４】ＧＰＵの演算コアとメモリの構成を示す説明図である。
【図５】反射鏡アンテナの構成例を示す説明図である。
【図６】非特許文献１に開示されている方法で最適化計算を実行する際のデータフロー図である。
【図７】最適化計算の実行対象である鏡面が４つの小領域Ａ，Ｂ，Ｃ，Ｄに分割された例を示す説明図である。
【図８】この発明の実施の形態１による並列処理装置が最適化計算を実行する際のデータフロー図である。
【図９】実施の形態１における並列処理と非特許文献４に記載されている並列処理との粒度の違いを示す説明図である。
【図１０】遺伝的アルゴリズムを利用して、小領域の形状の最適化計算を実行する際の処理内容を示すフローチャートである。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１はこの発明の実施の形態１による並列処理装置を示す構成図であり、図２はこの発明の実施の形態１による並列処理装置の構成要素であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）との処理の役割関係を示す説明図である。
この実施の形態１では、形状の最適化計算の実行対象が反射鏡アンテナの鏡面である例を説明するが、実行対象は鏡面に限るものではなく、例えば、飛行機の流体などでもよい。
【００１３】
図２において、ＣＰＵ１は、形状の最適化計算の実行に必要なデータ（例えば、極座標による鏡面の初期形状、各観測点のアンテナ利得など）をＧＰＵ上の複数のコアグループ２に送信する一方、ＧＰＵ上の複数のコアグループ２から形状の最適化計算結果として、鏡面における各々の小領域の最適形状を取得して、鏡面の全体形状を特定する処理などを実施する。
グラフィックス処理用プロセッサであるＧＰＵ２は、鏡面における小領域の形状の最適化計算を実行し、その最適化計算結果として、小領域の最適形状をＣＰＵ１から読み込み可能なメモリ２２へ出力する演算器である。
ここでは、演算器がＧＰＵである例を説明するが、形状の最適化計算を実行することができれば、ＧＰＵ以外の演算器（例えば、ＣＰＵ）でもよい。
【００１４】
図１において、領域分割処理部１１の処理はＣＰＵ１によって実現されており、最適化計算の実行対象である鏡面を複数の小領域に分割する処理を実施する。なお、領域分割処理部１１は領域分割手段を構成している。
この実施の形態１では、説明の便宜上、最適化計算の実行対象である鏡面を４つの小領域に分割する例を説明する。
領域割当処理部１２の処理はＣＰＵ１によって実現されており、４つのＧＰＵのコアグループ２（後述する形状計算処理部１３ａ〜１３ｄ）に対して、領域分割処理部１１により分割された小領域をそれぞれ割り当てる処理を実施する。なお、領域割当処理部１２は領域割当手段を構成している。
【００１５】
形状計算処理部１３ａ〜１３ｄの処理はＧＰＵのコアグループ２によって実現されており、領域割当処理部１２により自己に割り当てられていない小領域の形状については変化がないものとして、自己に割り当てられた小領域の形状の最適化計算を実行する。
例えば、領域分割処理部１１により分割された４つの小領域が小領域Ａ，Ｂ，Ｃ，Ｄであるとき、形状計算処理部１３ａに割り当てられている小領域が小領域Ａであれば、形状計算処理部１３ａは、小領域Ｂ，Ｃ，Ｄの形状については変化がないものとして、小領域Ａの形状の最適化計算を実行する。
また、例えば、形状計算処理部１３ｂに割り当てられている小領域が小領域Ｂであれば、形状計算処理部１３ｂは、小領域Ａ，Ｃ，Ｄの形状については変化がないものとして、小領域Ｂの形状の最適化計算を実行する。
【００１６】
全体形状特定処理部１４の処理はＣＰＵ１によって実現されており、形状計算処理部１３ａ〜１３ｄにおける最適化計算の実行結果である４つの小領域の最適形状から、鏡面の全体形状を特定する処理を実施する。
判定処理部１５の処理はＣＰＵ１によって実現されており、全体形状特定処理部１４により特定された鏡面の全体形状が鏡面形状に関する制約を満足しているか否かを判定し、鏡面の全体形状が鏡面形状に関する制約を満足していなければ、形状の最適化計算を再実行する小領域を特定する処理を実施する。
【００１７】
判定結果通知部１６の処理はＣＰＵ１によって実現されており、判定処理部１５に基づき、形状の最適化計算を再実行する小領域を指定し、その小領域が割り当てられている形状計算処理部１３に対して、最適化計算の再実行を指示する処理を実施する。
なお、全体形状特定処理部１４、判定処理部１５及び判定結果通知部１６から全体形状特定手段が構成されている。
【００１８】
図１の例では、並列処理装置の構成要素である領域分割処理部１１、領域割当処理部１２、形状計算処理部１３ａ〜１３ｄ、全体形状特定処理部１４、判定処理部１５及び判定結果通知部１６のそれぞれが専用のハードウェアで構成されているものを想定しているが、並列処理装置が、計算処理を並列に実行することが可能なコンピュータで構成されていてもよい。
並列処理装置がコンピュータで構成されている場合、領域分割処理部１１、領域割当処理部１２、形状計算処理部１３ａ〜１３ｄ、全体形状特定処理部１４、判定処理部１５及び判定結果通知部１６の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのＣＰＵが当該メモリに格納されているプログラムを実行するようにすればよい。
図３はこの発明の実施の形態１による並列処理装置の処理内容（並列処理方法）を示すフローチャートである。
【００１９】
図４はＧＰＵの演算コアとメモリの構成を示す説明図である。
ＧＰＵ２は、同一の演算命令（形状の最適化計算を実行する命令）を処理する単位で、複数の演算コアがグループ化されることで構成されている。
図４の例では、小容量であるがアクセス速度が高速なメモリ２１（例えば、キャッシュメモリ）を共有している複数のコアグループ２から、ＧＰＵが構成されている。
ＧＰＵがアクセス可能なメモリとして、アクセス速度が高速なメモリ２１の他に、メモリ２２（メモリ２２は、大容量であるがアクセス速度が低速なメモリであり、例えば、ＲＡＭなどが該当する）がある。
【００２０】
ＧＰＵは、ＣＰＵ１の制御の下で、所定の演算命令を実行するが、ＣＰＵ１とは非同期に動作する。
このとき、ＧＰＵのメモリ（メモリ２１，２２）は、ＣＰＵ１のメモリとは独立している（図２を参照）。
このため、ＣＰＵ１は、メモリに格納されているデータ（形状の最適化計算の実行に必要なデータ）をＧＰＵ２のメモリに転送する。
これにより、複数のＧＰＵが形状の最適化計算を実行して、その最適化計算結果をＧＰＵのメモリに格納すると、ＣＰＵ１が、複数のＧＰＵのメモリから最適化計算結果を取得して、ＣＰＵ１のメモリに格納する。
【００２１】
ＧＰＵ２における複数のグループの間で処理の同期を取る必要がある場合には、ＧＰＵ２の処理を一旦終了して、ＣＰＵ１側から同期を取るようにする。
この際、高速なメモリ２１に格納されている内容は、ＧＰＵ２の処理の終了に伴って消去されるため、計算中のデータは、低速なメモリ２２に書き込んでおく必要がある。このため、ＧＰＵの全体で同期を取る場合、メモリアクセスによるオーバヘッドが発生するが、グループ内の演算コアの間では、ＣＰＵ１側で、ＧＰＵ２の処理と待ち合わせることなく、低コストに同期を図ることができる。
【００２２】
図５は反射鏡アンテナの構成例を示す説明図である。
図５の例では、１つの一次放射器３１と１つの反射鏡３２から反射鏡アンテナが構成されている。
図５の例では、反射鏡３２における鏡面の形状を修整する鏡面修整パラメータをｓ（θ，φ）とし、鏡面修整パラメータｓ（θ，φ）が全ＮＰ個のサンプル点の集合として極座標３３で表されている。
鏡面の形状は、円多項式で表現することが可能であり、円多項式の１つである修正ヤコビ関数Ｆ（θ）を用いると、鏡面修整パラメータｓ（θ，φ）は、下記の式（１）のように表すことができる。
【００２３】
2014044565.tif 000003
式（１）において、Ｎ，Ｍは円多項式のパラメータサイズを表している。
また、円多項式の各項にかかっているＮ×Ｍ個の係数行列Ｃ，Ｄが、鏡面の形状に寄与するパラメータである。
したがって、Ｎ×Ｍ個の係数行列Ｃ，Ｄを最適化することで、鏡面の最適形状が得られる。
【００２４】
この実施の形態１による鏡面の形状を最適化する方法を説明する前に、上記の非特許文献１に開示されている方法（鏡面を複数の小領域に分割することなく、鏡面の全体形状の最適化計算を実行する方法）で、鏡面の形状を最適化する例を説明する。
図６は非特許文献１に開示されている方法で最適化計算を実行する際のデータフロー図である。
この方法は、以下の４つのステップ（１）〜（４）に分けられる。
ここでは、鏡面修整パラメータｓ（θ，φ）を要素数ＮＰ個の１次元の配列Ｓ０〜ＳＮＰ−１（符号４２）で表して、計ＮＣ点の観測点を扱うようにする。
また、係数行列Ｃ，Ｄの初期値を１次元の配列ＣＤ０〜ＣＤＮ−１（符号４１）で表すようにする。
【００２５】
［ステップ（１）］鏡面修整
鏡面形状に寄与するＮ×Ｍ個の未知のパラメータ（初期値）、即ち、１次元の配列ＣＤ０〜ＣＤＮ−１（符号４１）を式（１）に代入して、ＮＰ個のサンプル点による鏡面修整パラメータの配列Ｓ０〜ＳＮＰ−１（符号４２）を計算する。
【００２６】
［ステップ（２）］物理光学法に基づく電流分布計算
物理光学法によって鏡面形状から観測点毎の利得値（電流分布）を計算する。
即ち、電磁界計算法の１つである物理光学法に基づいて、下記の式（２）に示すように、鏡面修整パラメータの配列Ｓ０〜ＳＮＰ−１（符号４２）から、ＮＰ個のサンプル点毎に、ＮＣ個の観測点に対する電流分布Ｉｄｉｓを計算し、その計算結果を観測点毎に配列ａｗ０〜ａｗＮＰ−１（符号４３）に格納する。
【００２７】
2014044565.tif 000004
2014044565.tif 000005
【００２８】
［ステップ（３）］物理光学法に基づく重積分
ＮＣ個の観測点に対する電流分布Ｉｄｉｓの配列ａｗ０〜ａｗＮＰ−１（符号４３）に対して、物理光学法に基づく重積分を行うことで、観測点毎の放射界Ｅｉを計算し、その計算結果を配列Ｅ（符号４４）に格納する。
2014044565.tif 000006
【００２９】
［ステップ（４）］評価値の計算
まず、放射界は複素数で表されるため、観測点毎に、放射界の配列Ｅ（符号４４）の要素を実数値化し、その実数値を獲得利得値とする。
次に、要求利得値ｇ（符号４５）に対する獲得利得値の達成度合いに基づいて、各観測点の評価値ｆｌｏｃａｌｉ（符号４７）を計算する。
2014044565.tif 000007
式（４）において、ｗは観測点毎の評価値の大きさを調整するウェイト（符号４６）である。
最後に、全ての観測点の評価値ｆｌｏｃａｌｉ（符号４７）の平均値を全体の評価値ｆａｌｌ（符号４８）として計算する。
2014044565.tif 000008
【００３０】
以上によって計算した全体の評価値ｆａｌｌ（符号４８）が最小化するように、未知のパラメータである配列ＣＤ０〜ＣＤＮ−１（符号４１）の各要素を修整して、ステップ（１）〜（４）の処理を繰り返し実施する。
そして、全体の評価値ｆａｌｌ（符号４８）が最も高くなるときの配列ＣＤ０〜ＣＤＮ−１（符号４１）が示す形状を鏡面の最適形状とする。
【００３１】
ステップ（１）〜（４）の間の依存関係は、以下の通りである。
［ステップ（１）（２）間の依存関係］
鏡面修整パラメータの配列Ｓ０〜ＳＮＰ−１（符号４２）の各要素は、ステップ（１）で、未知のパラメータである配列ＣＤ０〜ＣＤＮ−１（符号４１）の全要素を用いた演算結果を積み上げた値である。
このため、ステップ（２）の開始前に、ステップ（１）の終了と同期する必要がある。
【００３２】
［ステップ（２）（３）間の依存関係］
ＮＣ個の観測点に対する放射界Ｅｉの配列Ｅ（符号４４）は、観測点毎に独立した演算で求まるが、各々の観測点に対応する電流分布Ｉｄｉｓの配列ａｗ０〜ａｗＮＰ−１（符号４３）の全要素を必要とする。
このため、ステップ（３）の開始前に、ステップ（２）の終了と同期する必要がある。
【００３３】
［ステップ（３）（４）間の依存関係］
ステップ（３）の重積分計算では、電流分布Ｉｄｉｓの配列ａｗ０〜ａｗＮＰ−１（符号４３）の各要素に対する係数乗算の結果が積み上げられる。
ステップ（４）では、観測点毎に、放射界Ｅｉの配列Ｅ（符号４４）の要素が実数値化されて獲得利得値が求められるが、放射界Ｅｉは、配列ａｗ０〜ａｗＮＰ−１（符号４３）の各要素に対する係数乗算の結果が積み上げられたものである。
このため、ステップ（４）の開始前に、ステップ（３）の終了と同期する必要がある。
【００３４】
以下、この実施の形態１による鏡面形状の最適化方法について説明する。
領域分割処理部１１は、最適化計算の実行対象である鏡面を複数の小領域に分割する（図３のステップＳＴ１）。
この実施の形態１では、説明の便宜上、最適化計算の実行対象である鏡面を４つの小領域Ａ，Ｂ，Ｃ，Ｄに分割する例を説明する。
図７は最適化計算の実行対象である鏡面が４つの小領域Ａ，Ｂ，Ｃ，Ｄに分割された例を示す説明図である。図７では、４つの小領域Ａ，Ｂ，Ｃ，Ｄが実線で囲う形で表されている。
【００３５】
領域割当処理部１２は、領域分割処理部１１が鏡面を４つの小領域Ａ，Ｂ，Ｃ，Ｄに分割すると、４つの形状計算処理部１３ａ〜１３ｄに対して、小領域Ａ，Ｂ，Ｃ，Ｄをそれぞれ割り当てる処理を実施する（ステップＳＴ２）、
即ち、領域割当処理部１２は、小領域Ａを形状計算処理部１３ａに割り当て、小領域Ｂを形状計算処理部１３ｂに割り当て、小領域Ｃを形状計算処理部１３ｃに割り当てる。また、小領域Ｄを形状計算処理部１３ｄに割り当てる。
図８はこの発明の実施の形態１による並列処理装置が最適化計算を実行する際のデータフロー図である。
領域割当処理部１２は、４つの形状計算処理部１３ａ〜１３ｄに対して、小領域Ａ，Ｂ，Ｃ，Ｄをそれぞれ割り当てると、鏡面形状に寄与するＮ×Ｍ個の未知のパラメータ（初期値）、即ち、１次元の配列ＣＤ０〜ＣＤＮ−１（符号５１）を形状計算処理部１３ａ〜１３ｄに与える。
【００３６】
形状計算処理部１３ａ〜１３ｄは、領域割当処理部１２から１次元の配列ＣＤ０〜ＣＤＮ−１（符号５１）を受けると、領域割当処理部１２により自己に割り当てられていない小領域の形状については変化がないものとして、自己に割り当てられた小領域の形状の最適化計算を実行する（ステップＳＴ３）。
即ち、形状計算処理部１３ａは、小領域Ｂ，Ｃ，Ｄの形状については変化がないものとして、小領域Ａの形状の最適化計算を実行する。
また、形状計算処理部１３ｂは、小領域Ａ，Ｃ，Ｄの形状については変化がないものとして、小領域Ｂの形状の最適化計算を実行する。
形状計算処理部１３ｃは、小領域Ａ，Ｂ，Ｄの形状については変化がないものとして、小領域Ｃの形状の最適化計算を実行する。
また、形状計算処理部１３ｄは、小領域Ａ，Ｂ，Ｃの形状については変化がないものとして、小領域Ｄの形状の最適化計算を実行する。
【００３７】
以下、形状計算処理部１３ａ〜１３ｄの処理内容を具体的に説明する。
［ステップ（１）］鏡面修整
形状計算処理部１３ａ〜１３ｄは、鏡面形状に寄与するＮ×Ｍ個の未知のパラメータ（初期値）、即ち、１次元の配列ＣＤ０〜ＣＤＮ−１（符号５１）を上記の式（１）に代入して、ＮＰ個のサンプル点による鏡面修整パラメータの配列Ｓｓｔａｒｔ〜Ｓｅｎｄ（符号５２）を計算する。
ただし、形状計算処理部１３ａ〜１３ｄは、自己に割り当てられていない小領域の形状については変化がないものとして、自己に割り当てられている小領域の形状の最適化計算を実行するので、鏡面修整パラメータの配列Ｓｓｔａｒｔ〜Ｓｅｎｄ（符号５２）のうち、自己に割り当てられている小領域に係る鏡面修整パラメータの配列Ｓｓｔａｒｔ〜Ｓｅｎｄ（符号５２）だけを計算する。
なお、Ｎ×Ｍ個の未知のパラメータである配列ＣＤ０〜ＣＤＮ−１（符号５１）は、グループ固有であるため、ステップ（１）の終了時にグループ間で同期する必要はない。
【００３８】
［ステップ（２）］物理光学法に基づく電流分布計算
形状計算処理部１３ａ〜１３ｄは、鏡面修整パラメータの配列Ｓｓｔａｒｔ〜Ｓｅｎｄ（符号５２）の中で、自己に割り当てられている小領域に対応する要素から、観測点に対する電流分布Ｉｄｉｓを計算し（式（２）を参照）、その計算結果を配列ａｗｓｔａｒｔ〜ａｗｅｎｄ（符号５３）に格納する。
ここでは、グループ毎に割り当てられている小領域以外の小領域の形状には変化がないものとしているため、ステップ（２）の終了時にグループ間で同期する必要はない。
【００３９】
［ステップ（３）］物理光学法に基づく重積分
形状計算処理部１３ａ〜１３ｄは、各観測点に対する電流分布Ｉｄｉｓの配列ａｗｓｔａｒｔ〜ａｗｅｎｄ（符号５３）に対して、物理光学法に基づく重積分を行うことで、観測点毎の放射界Ｅｉを計算し、その計算結果を配列Ｅ（符号５５）に格納する（式（３）を参照）。
この際、グループ毎に、割り当てられている小領域以外の小領域の形状には変化がないものとしているため、割り当てられている小領域以外の小領域の形状から、放射界の計算で使用される中間データＥｅｌｓｅ（符号５４）を予め計算しておき、この中間データＥｅｌｓｅ（符号５４）を電流分布Ｉｄｉｓの配列ａｗｓｔａｒｔ〜ａｗｅｎｄ（符号５３）と合成する形で重積分を実施する。
ステップ（３）では、グループ毎に、割り当てられている小領域以外の小領域の形状に変化がない鏡面を扱うため、ステップ（３）の開始前及び終了時に、グループ間で同期をとる必要はない。
【００４０】
［ステップ（４）］評価値の計算
形状計算処理部１３ａ〜１３ｄは、観測点毎に、放射界Ｅｉの配列Ｅ（符号５５）の要素を実数値化し、その実数値を獲得利得値とする。
次に、形状計算処理部１３ａ〜１３ｄは、要求利得値ｇ（符号５６）に対する獲得利得値の達成度合いに基づいて、各観測点の評価値ｆｌｏｃａｌｉ（符号５８）を計算する（式（４）を参照）。
最後に、形状計算処理部１３ａ〜１３ｄは、全ての観測点の評価値ｆｌｏｃａｌｉ（符号５８）の平均値を全体の評価値ｆａｌｌ（符号５９）として計算する（式（５）を参照）。
ステップ（４）では、グループ毎に、割り当てられている小領域の形状のみが変化する鏡面から放射界Ｅｉの配列Ｅ（符号５５）が計算されているため、配列Ｅ（符号５５）の全ての要素が、グループ毎に固有の値になる。
即ち、グループ毎に、各観測点の評価値ｆｌｏｃａｌｉ（符号５８）及び全体の評価値ｆａｌｌ（符号５９）を独立に計算することができる。
【００４１】
形状計算処理部１３ａ〜１３ｄは、各々が割り当てられている小領域に関する全体の評価値ｆａｌｌ（符号５９）を計算すると、その評価値ｆａｌｌ（符号５９）が高くなるように、未知のパラメータである配列ＣＤ０〜ＣＤＮ−１（符号５１）の各要素を修整して、ステップ（１）〜（４）の処理を繰り返し実施する。
そして、形状計算処理部１３ａ〜１３ｄは、全体の評価値ｆａｌｌ（符号５９）が最も高くなるときの配列ＣＤ０〜ＣＤＮ−１（符号５１）が示す形状を小領域の最適形状として、配列ＣＤ０〜ＣＤＮ−１（符号５１）をメモリ２２に格納する。
【００４２】
全体形状特定処理部１４は、形状計算処理部１３ａ〜１３ｄが、各小領域に関する配列ＣＤ０〜ＣＤＮ−１（符号５１）をメモリ２２に格納すると、メモリ２２から各小領域に関する配列ＣＤ０〜ＣＤＮ−１（符号５１）を取得し、その配列ＣＤ０〜ＣＤＮ−１（符号５１）が示す小領域の形状から、反射鏡３２における鏡面の全体形状を特定する（図３のステップＳＴ４）。
【００４３】
判定処理部１５は、全体形状特定処理部１４が反射鏡３２における鏡面の全体形状を特定すると、その鏡面の全体形状が鏡面形状に関する制約を満足しているか否かを判定する（ステップＳＴ５）。
鏡面形状に関する制約としては、例えば、鏡面の全領域から得られる観測点毎の評価値ｆｌｏｃａｌｉ（符号５８）の大きさの平均化が考えられる。このような制約が用いられる場合、鏡面の全領域において、全体の評価値ｆａｌｌ（符号５９）と観測点毎の評価値ｆｌｏｃａｌｉ（符号５８）との差分値が、許容差分値より小さければ、鏡面の全体形状が鏡面形状に関する制約を満足していると判定される。一方、いずれか１つ以上の観測点において、全体の評価値ｆａｌｌ（符号５９）と、観測点毎の評価値ｆｌｏｃａｌｉ（符号５８）との差分値が、許容差分値より大きければ、鏡面の全体形状が鏡面形状に関する制約を満足していないと判定される。
判定処理部１５は、鏡面の全体形状が鏡面形状に関する制約を満足していないと判定すると、形状の最適化計算を再実行する小領域として、制約を満足しない観測点に対する上記の差分値が許容差分値より大きい小領域を特定する（ステップＳＴ６）。
【００４４】
判定結果通知部１６は、判定処理部１５が形状の最適化計算を再実行する小領域を特定すると、その小領域が割り当てられている形状計算処理部１３に対して、最適化計算の再実行を指示する（ステップＳＴ７）。
例えば、小領域Ａに関する全体の評価値ｆａｌｌ（符号５９）と、制約を満たしていない観測点の評価値ｆｌｏｃａｌｉ（符号５８）との差分値が、許容差分値より大きければ、小領域Ａが割り当てられている形状計算処理部１３ａに対して、最適化計算の再実行を指示し、小領域Ｃに関する全体の評価値ｆａｌｌ（符号５９）と制約を満たしていない観測点の評価値ｆｌｏｃａｌｉ（符号５８）との差分値が、許容差分値より大きければ、小領域Ｃが割り当てられている形状計算処理部１３ｃに対して、最適化計算の再実行を指示する。
判定結果通知部１６は、形状計算処理部１３に対して、最適化計算の再実行を指示する際、例えば、観測点毎の評価値の大きさを調整するウェイトｗの変更を指示することで、最適化計算の計算条件を変更する。
【００４５】
形状計算処理部１３ａ〜１３ｄの中で、判定結果通知部１６から最適化計算の再実行指示を受けた形状計算処理部１３は、上記と同様に、ステップ（１）〜（４）の処理を繰り返し実施して、全体の評価値ｆａｌｌ（符号５９）が最も高くなるときの配列ＣＤ０〜ＣＤＮ−１（符号５１）が示す形状を小領域の最適形状として、配列ＣＤ０〜ＣＤＮ−１（符号５１）をメモリ２２に格納する（ステップＳＴ３）。
全体形状特定処理部１４は、最適化計算を再実行した形状計算処理部１３ａ〜１３ｄが、小領域に関する配列ＣＤ０〜ＣＤＮ−１（符号５１）をメモリ２１に格納すると、上記と同様に、メモリ２２から各小領域に関する配列ＣＤ０〜ＣＤＮ−１（符号５１）を取得し、その配列ＣＤ０〜ＣＤＮ−１（符号５１）が示す小領域の形状から、反射鏡３２における鏡面の全体形状を特定する（ステップＳＴ４）。
【００４６】
判定処理部１５は、全体形状特定処理部１４が反射鏡３２における鏡面の全体形状を特定すると、上記と同様に、その鏡面の全体形状が鏡面形状に関する制約を満足しているか否かを判定する（ステップＳＴ５）。
判定結果通知部１６は、判定処理部１５により鏡面の全体形状が鏡面形状に関する制約を満足していると判定されると、最適化計算の終了を形状計算処理部１３ａ〜１３ｄに通知する（ステップＳＴ８）。
これにより、形状計算処理部１３ａ〜１３ｄにおける最適化計算が終了する。
【００４７】
ここでは、判定処理部１５により鏡面の全体形状が鏡面形状に関する制約を満足していないと判定されると、判定結果通知部１６が最適化計算の再実行を指示するものを示したが、鏡面の全体形状が最適な形状へ収束している場合、一部の小領域について、最適化計算を再実行しても、これ以上、鏡面の全体形状の最適化を図ることができない。また、実現不可能な形状への最適化が進行してしまう可能性がある。
そこで、判定処理部１５は、全体形状特定処理部１４により特定された鏡面の全体形状が収束しているか否かを判定し、鏡面の全体形状が最適な形状へ収束していれば、鏡面の全体形状が鏡面形状に関する制約を満足していなくても、最適化計算の終了を形状計算処理部１３ａ〜１３ｄに通知する。
これにより、形状計算処理部１３ａ〜１３ｄにおける最適化計算が終了する。
【００４８】
ここで、図９は実施の形態１における並列処理と非特許文献４に記載されている並列処理との粒度の違いを示す説明図である。
図９において、矢印６０ａ〜６０ｄは、非特許文献４に記載されている並列処理（細粒度並列化）を示しており、矢印７０ａ〜７０ｄは、実施の形態１における並列処理（粗粒度並列化）を示している。
非特許文献４に記載されている並列処理６０ａ〜６０ｄと、実施の形態１における並列処理７０ａ〜７０ｄとを比較すると、非特許文献４に記載されている並列処理６０ａ〜６０ｄでは、各ステップの間で、グループ全体の同期６１ａ〜６１ｄを実施する必要があるため、ＧＰＵ２が低速なメモリ２２にアクセスするオーバヘッドが大きくなる。
一方、実施の形態１における並列処理７０ａ〜７０ｄでは、グループ内の同期処理で済み、グループ全体の同期６１ａ〜６１ｄを実施する必要がないため、オーバヘッドが小さくなる。
また、評価値の計算に必要なパラメータを、高速なメモリ２１に記録したままにできるため、小容量であるが高速なメモリ２１の利用効率が高まり、並列処理の速度が向上する。
【００４９】
以上で明らかなように、この実施の形態１によれば、ＧＰＵのコアグループ２である形状計算処理部１３ａ〜１３ｄが、領域分割処理部１１により自己に割り当てられていない小領域の形状については変化がないものとして、自己に割り当てられた小領域の形状の最適化計算を実行するように構成したので、最適化計算の途中段階で、各々の小領域の最適化計算間の同期を図ることなく、独立して、各々の小領域の形状の最適化計算を行うことができるようになり、その結果、最適な鏡面の形状を短時間で計算することができる効果を奏する。
【００５０】
実施の形態２．
上記実施の形態１では、ＧＰＵのコアグループ２である形状計算処理部１３ａ〜１３ｄが、領域分割処理部１１により自己に割り当てられていない小領域の形状については変化がないものとして、自己に割り当てられた小領域の形状の最適化計算を実行する方法を示したが、形状計算処理部１３ａ〜１３ｄが、この最適化計算の手段に遺伝的アルゴリズムを利用して、自己に割り当てられた小領域の形状の最適化計算を実行するようにしてもよい。
【００５１】
具体的には、以下の通りである。
図１０は遺伝的アルゴリズムを利用して、小領域の形状の最適化計算を実行する際の処理内容を示すフローチャートである。
まず、形状計算処理部１３ａ〜１３ｄは、解候補の集団を生成する（ステップＳＴ１１）。
即ち、形状計算処理部１３ａ〜１３ｄは、上記実施の形態１と同様にして、領域割当処理部１２から１次元の配列ＣＤ０〜ＣＤＮ−１（符号５１）を受けると、例えば、乱数を１次元の配列ＣＤ０〜ＣＤＮ−１（符号５１）に乗算することで、解候補の数分だけ、１次元の配列ＣＤ０〜ＣＤＮ−１（符号５１）を生成する。
【００５２】
形状計算処理部１３ａ〜１３ｄは、解候補の数分だけ、１次元の配列ＣＤ０〜ＣＤＮ−１（符号５１）を生成すると、解候補毎に、１次元の配列ＣＤ０〜ＣＤＮ−１（符号５１）を上記の式（１）に代入して、ＮＰ個のサンプル点による鏡面修整パラメータの配列Ｓｓｔａｒｔ〜Ｓｅｎｄ（符号５２）を計算する。
ただし、形状計算処理部１３ａ〜１３ｄは、上記実施の形態１と同様に、自己に割り当てられていない小領域の形状については変化がないものとして、自己に割り当てられている小領域の形状の最適化計算を実行するので、鏡面修整パラメータの配列Ｓｓｔａｒｔ〜Ｓｅｎｄ（符号５２）のうち、自己に割り当てられている小領域に係る鏡面修整パラメータの配列Ｓｓｔａｒｔ〜Ｓｅｎｄ（符号５２）だけを計算する。
【００５３】
形状計算処理部１３ａ〜１３ｄは、解候補毎に、鏡面修整パラメータの配列Ｓｓｔａｒｔ〜Ｓｅｎｄ（符号５２）を計算すると、上記実施の形態１に記述しているステップ（２）〜（４）を実施することで、解候補毎に、小領域Ａ，Ｂ，Ｃ，Ｄに関する全体の評価値ｆａｌｌ（符号５９）を計算する（ステップＳＴ１２）。
なお、鏡面修整パラメータなどのパラメータは、解候補毎に独立である一方、評価値ｆａｌｌの計算に必要な多くのパラメータは、複数の解候補の間で共通している。
例えば、未知のパラメータである配列ＣＤ０〜ＣＤＮ−１（符号５１）から鏡面修整パラメータの配列Ｓｓｔａｒｔ〜Ｓｅｎｄ（符号５２）を生成するためのパラメータ、電流分布Ｉｄｉｓの配列ａｗｓｔａｒｔ〜ａｗｅｎｄ（符号５３）を計算するためのパラメータ、評価値ｆａｌｌの計算に必要なパラメータ（要求利得値ｇ（符号５６）、ウェイトｗ（符号５７））は、解候補の間で共通の値である。
このため、これらのパラメータを、アクセス速度が高速なメモリ２１にキャッシュしておくことで、パラメータの再取得に必要なメモリアクセス時間を削減することができる。
よって、複数の解候補を同時に扱うことで、非特許文献３，４に開示されている方法と比較して、低速なメモリ２２にアクセスするオーバヘッドがより小さくなるため、高速な並列処理が可能になる。
【００５４】
形状計算処理部１３ａ〜１３ｄは、解候補毎に、自己が割り当てられている小領域に関する全体の評価値ｆａｌｌ（符号５９）を計算すると、例えば、全ての解候補の中から、自己が割り当てられている小領域に関する全体の評価値ｆａｌｌ（符号５９）が最も高い解候補と、全体の評価値ｆａｌｌ（符号５９）が２番目に高い解候補とを選択し、最も高い解候補と２番目に高い解候補（以下、２つの解候補を「親解候補」と称する）から、親解候補の性質を引き継ぐ新たな解候補を生成する（ステップＳＴ１３）。
例えば、評価値が最も高い解候補における配列ＣＤ０〜ＣＤＮ−１（符号５１）と、評価値が２番目に高い解候補における配列ＣＤ０〜ＣＤＮ−１（符号５１）とで、データ内容の交換や乱数値の乗算・加算によって、新たな解候補における１次元の配列ＣＤ０〜ＣＤＮ−１（符号５１）とすることで、新たな解候補を生成する。
【００５５】
形状計算処理部１３ａ〜１３ｄは、新たな解候補の生成を繰り返し実施したのち、新たな解候補の生成を終了すると（ステップＳＴ１３，ＳＴ１４）、新たな解候補と元の解候補の集団の中から、新たな解候補の集団を選択する（ステップＳＴ１５）。
例えば、解候補の集団の個数がＰ個であるとき、新たな解候補をＱ個生成することで、新たな解候補と元の解候補の集団の数が（Ｐ＋Ｑ）個になっていれば、（Ｐ＋Ｑ）個の解候補の中から、新たな解候補の集団として、評価値ｆａｌｌ（符号５９）が高い上位Ｐ個の解候補を選択する。
形状計算処理部１３ａ〜１３ｄは、反復計算の終了条件を満足するまで、ステップＳＴ１１〜ＳＴ１５の処理を繰り返し実施する（ステップＳＴ１６）。
【００５６】
以上で明らかなように、この実施の形態２によれば、形状計算処理部１３ａ〜１３ｄが、遺伝的アルゴリズムを利用して、自己に割り当てられた小領域の形状の最適化計算を実行する場合、解候補の集団を生成する処理と、解候補毎に当該領域の形状の最適化計算を実行する処理と、生成済みの解候補の中から、当該領域に関する評価値が高い解候補を複数選択し、その選択した複数の解候補から新たな解候補を生成する処理とを繰り返し実施したのち、新たな解候補と元の解候補の集団の中から、新たな解候補の集団を選択するように構成しているため、複数の解候補の配列ＣＤ０〜ＣＤＮ−１（符号５１）を高速なメモリ２１上に保持することで、更なる並列処理の高速化を図ることができる効果を奏する。
【００５７】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００５８】
１  ＣＰＵ、２  ＧＰＵ（演算器）、１１  領域分割処理部（領域分割手段）、１２  領域割当処理部（領域割当手段）、１３ａ〜１３ｄ  形状計算処理部、１４  全体形状特定処理部（全体形状特定手段）、１５  判定処理部（全体形状特定手段）、１６  判定結果通知部（全体形状特定手段）、２１  高速なメモリ、２２  低速なメモリ、３１  一次放射器、３２  反射鏡、３３  極座標、４１  １次元の配列ＣＤ０〜ＣＤＮ−１、４２  鏡面修整パラメータの配列Ｓ０〜ＳＮＰ−１、４３  電流分布Ｉｄｉｓの配列ａｗ０〜ａｗＮＰ−１、４４  放射界Ｅｉの配列Ｅ、４５  要求利得値ｇ、４６  ウェイトｗ、４７  各観測点の評価値ｆｌｏｃａｌｉ、４８  全体の評価値ｆａｌｌ、５１  １次元の配列ＣＤ０〜ＣＤＮ−１、５２  鏡面修整パラメータの配列Ｓｓｔａｒｔ〜Ｓｅｎｄ、５３  電流分布Ｉｄｉｓの配列ａｗｓｔａｒｔ〜ａｗｅｎｄ、５４  中間データＥｅｌｓｅ、５５  放射界Ｅｉの配列Ｅ、５６  要求利得値ｇ、５７  ウェイトｗ、５８  観測点の評価値ｆｌｏｃａｌｉ、５９  全体の評価値ｆａｌｌ、６０ａ〜６０ｄ  非特許文献４に記載されている並列処理、６１ａ〜６１ｄ  グループ全体の同期、７０ａ〜７０ｄ  実施の形態１における並列処理。
【図１】
2014044565.tif 000009
【図２】
2014044565.tif 000010
【図３】
2014044565.tif 000011
【図４】
2014044565.tif 000012
【図５】
2014044565.tif 000013
【図６】
2014044565.tif 000014
【図７】
2014044565.tif 000015
【図８】
2014044565.tif 000016
【図９】
2014044565.tif 000017
【図１０】
2014044565.tif 000018