JP5853794B2 - 転置装置、転置方法、および転置プログラム - Google Patents

転置装置、転置方法、および転置プログラム Download PDF

Info

Publication number
JP5853794B2
JP5853794B2 JP2012062285A JP2012062285A JP5853794B2 JP 5853794 B2 JP5853794 B2 JP 5853794B2 JP 2012062285 A JP2012062285 A JP 2012062285A JP 2012062285 A JP2012062285 A JP 2012062285A JP 5853794 B2 JP5853794 B2 JP 5853794B2
Authority
JP
Japan
Prior art keywords
axis
arrays
arithmetic
transposition
target data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012062285A
Other languages
English (en)
Other versions
JP2013196323A (ja
Inventor
加藤 知己
知己 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012062285A priority Critical patent/JP5853794B2/ja
Priority to EP13150596.8A priority patent/EP2642404A3/en
Priority to US13/750,117 priority patent/US9424683B2/en
Publication of JP2013196323A publication Critical patent/JP2013196323A/ja
Application granted granted Critical
Publication of JP5853794B2 publication Critical patent/JP5853794B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Discrete Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Complex Calculations (AREA)
  • Measuring Magnetic Variables (AREA)

Description

本発明は、転置装置、転置方法、および転置プログラムに関する。
従来、3次元の解析空間における電磁界解析を行う手法の一つに、FDTD法(Finite−Difference Time−Domain method)がある。FDTD法は、マクスウェルの方程式を時間・空間領域における差分方程式に展開し、展開した差分方程式を解くことにより、解析空間の電磁界の値を算出する手法である。
FDTD法は、演算の効率化のために、複数の情報処理装置により並列演算される場合がある。この場合、隣接する2つの空間に対するFDTD法の演算が割り振られた2つの情報処理装置は、演算結果を交換することになる。
従来技術として、各情報処理装置の演算能力をシミュレーションにより測定し、演算能力に応じて解析空間を分割して、各情報処理装置に割り振ってFDTD法の並列演算を行わせて、電磁界解析を行う技術がある(例えば、下記特許文献1参照)。
また、関連する技術として、解析空間をメッシュ状に分割して、各情報処理装置に割り振ってモンテカルロ法の並列演算を行わせて、複数領域における粒子の分布状態をシミュレーションする技術がある(例えば、下記特許文献2参照)。また、関連する技術として、回路に対するFDTD法の適用を効率化する技術がある(例えば、下記特許文献3参照)。
特開2004−54642号公報 特開2005−292009号公報 特許第4644740号公報
しかしながら、上述した従来技術では、所定の装置間では通信できないように接続された複数の情報処理装置にFDTD法の並列演算を実行させる場合がある。この場合、通信できるように接続された2つの情報処理装置に、隣接する2つの空間に対するFDTD法の演算を割り振ることになるが、解析空間の形状によってはFDTD法の演算が割り振られない情報処理装置が生じることがある。
また、任意の装置間で通信できるように接続された複数の情報処理装置にFDTD法の並列演算を実行させる場合がある。この場合、隣接する2つの空間に対するFDTD法の演算が割り振られた2つの情報処理装置間の演算結果の交換のために、2つの情報処理装置間の接続を制御するルータは、ルーティング処理を実行することになる。そのため、ルーティング処理により、情報処理装置の演算結果の交換の待ち時間が増大し、FDTD法の演算にかかる時間が増大することがある。
本発明は、電磁界解析の効率化を図ることができる転置装置、転置方法、および転置プログラムを提供することを目的とする。
本発明の一側面によれば、行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し3次元座標系に存在する格子状の3次元解析対象データの電磁界解析処理を実行する演算装置を制御し、3次元解析対象データについて、3次元座標系の第1軸の方向の格子の配列数、第2軸の方向の格子の配列数、および第3軸の方向の格子の配列数を検出し、検出された各配列数と、複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数と、に基づいて、3次元解析対象データの格子群を転置し、転置された3次元解析対象データを演算装置に出力する転置装置、転置方法、および転置プログラムが提案される。
本発明の一側面によれば、電磁界解析の効率化を図ることができるという効果を奏する。
図1は、転置装置による解析空間のデータの転置例を示す説明図である。 図2は、実施の形態にかかる電磁界解析システムの一例を示す説明図である。 図3は、実施の形態にかかる転置装置100のハードウェア構成例を示すブロック図である。 図4は、転置装置100の機能的構成例を示すブロック図である。 図5は、転置装置100による解析空間Aのデータの転置の実施例1を示す説明図である。 図6は、剰余単位空間Bの割り振り順序を示す説明図である。 図7は、実行命令列の一例を示す説明図である。 図8は、演算素子PE間のデータ交換を示す説明図である。 図9は、解析空間A全体の電磁界解析結果の出力を示す説明図である。 図10は、実施例1にかかる電磁界解析処理の詳細な処理手順を示すシーケンス図(その1)である。 図11は、実施例1にかかる電磁界解析処理の詳細な処理手順を示すシーケンス図(その2)である。 図12は、実施例1にかかる電磁界解析処理の詳細な処理手順を示すシーケンス図(その3)である。 図13は、実施例1にかかる転置装置100による転置処理の詳細な処理手順を示すフローチャートである。 図14は、転置装置100による方向変換パターン決定処理の詳細な処理手順を示すフローチャートである。 図15は、転置装置100による解析空間Aのデータの転置の実施例2を示す説明図(その1)である。 図16は、転置装置100による解析空間Aのデータの転置の実施例2を示す説明図(その2)である。 図17は、実施例2にかかる転置装置100による転置処理の詳細な処理手順を示すフローチャートである。
以下に添付図面を参照して、この発明にかかる転置装置、転置方法、および転置プログラムの実施の形態を詳細に説明する。転置装置は、3次元直交座標系に存在する解析空間のデータをY軸とZ軸とから分割し、分割した空間を複数の演算素子に割り振って、複数の演算素子に解析空間に対するFDTD法による電磁界解析の並列演算を実行させるコンピュータである。
演算素子の各々は、電磁界解析の演算結果になる電磁界の値を保持する記憶装置を有する。また、演算素子の各々は、FDTD法による電磁界解析のために、過去の時点の電磁界の値を取得することになる。ここで、演算素子の各々は、分割されたY軸とZ軸とに関する過去の時点の電磁界の値は他の演算素子から取得することになるが、分割されていないX軸に関する過去の時点の電磁界の値は各々が有する記憶装置から取得することができる。よって、演算素子の各々は、X軸の方向に関する電磁界の値を、Y軸およびZ軸の電磁界の値より、効率的に算出することができる。
そのため、転置装置は、解析空間の大きさが最大になる方向が、演算素子が効率的に算出することができるX軸方向に一致するように、解析空間のデータを転置する。そして、転置装置は、転置後の解析空間をY軸とZ軸とから分割して、複数の演算素子に割り振って、電磁界解析の並列演算を実行させる。これにより、転置装置は、演算素子が効率よく算出することができるX軸方向に関する電磁界解析の処理量を増加させ、Y軸とZ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子は、転置後の解析空間の電磁界解析にかかる時間を、転置前の解析空間の電磁界解析にかかる時間より低減することができる。
ここでは、転置装置により解析空間はY軸とZ軸とから分割され、演算素子はX軸方向に関する電磁界の値を他の軸方向に関する電磁界の値より効率よく算出することができるとしたが、これに限らない。例えば、転置装置は解析空間をX軸とY軸とから分割してもよい。この場合、演算装置は、Z軸方向に関する電磁界の値を他の軸方向に関する電磁界の値より効率よく算出することができる。
図1は、転置装置による解析空間のデータの転置例を示す説明図である。図1において、転置装置100は、3次元直交座標系に存在する解析空間Aについて、複数の演算素子PEを有する演算装置CにFDTD法による電磁界解析の並列演算を実行させ、解析空間Aの電磁界解析を行う。ここで、解析空間Aは、X軸、Y軸、およびZ軸により表される3次元直交座標系に存在する単位空間Bの集合である。単位空間Bは、いわゆる「Yee格子」である。単位空間Bの一辺の長さの単位は、例えば、メートルである。
図1の(A)に、電磁界解析の並列演算を実行する複数の演算素子PEを有する演算装置Cの一例を示す。(A)の例では、演算装置Cが有する複数の演算素子PEは、「5行4列」の2次元行列状に配列されている。各々の演算素子PEは、隣接する他の演算素子PEと接続されている。また、各々の演算素子PEは、ワークエリアになったり電磁界解析の演算結果を保持したりする記憶装置を有する。電磁界解析の演算結果は、解析空間A内の或る座標における電磁界の値である。
また、各々の演算素子PEは、X軸の方向に関する電磁界の値を、Y軸およびZ軸の電磁界の値より、効率的に算出することができるとする。以降、電磁界の値を効率的に算出することができるX軸を、電磁界解析が効率化されたX軸と表す。
図1の(B)に、転置装置100による解析空間Aのデータの転置例を示す。(B)の例では、解析空間Aは、或る方向V1に10段、或る方向V2に16段、或る方向V3に4段積まれた単位空間Bの集合である。転置装置100による転置前では、3次元座標系において、解析空間Aは、方向V1がX軸方向に一致し、方向V2がY軸方向に一致し、方向V3がZ軸方向に一致するように配置されている。
以降、各方向V1〜V3の段数を、各方向V1〜V3の格子数と表す。そして、方向V1の格子数「10」、方向V2の格子数「16」、および方向V3の格子数「4」であれば、各方向V1〜V3の格子数「10,16,4」と表す。また、3次元座標系に解析空間Aを配置した場合に、各軸方向に一致する方向V1〜V3の格子数を、各軸方向の格子数と表す。そして、X方向の格子数「10」、Y軸方向の格子数「16」、およびZ軸方向の格子数「4」であれば、各軸方向の格子数「10,16,4」と表す。
ここで、転置装置100は、解析空間Aの大きさが最大になる方向が、電磁界解析が効率化されたX軸方向になるように、解析空間Aのデータを転置する。解析空間Aのデータは、解析空間A内の各々の単位空間Bにおける電磁界の変数である。そして、転置後の解析空間Aを、演算素子PEの配列位置に対応する升目を有する格子により区切り、区切られた升目内に存在する空間について、演算素子PEに電磁界解析を実行させる。
転置装置100は、具体的には、例えば、解析空間Aの各方向V1〜V3の格子数「10,16,4」の中から、最大の格子数「16」を特定し、最大の格子数になる方向V2を特定する。次に、転置装置100は、特定された方向V2が電磁界解析が効率化されたX軸方向になるように、方向V2に関する電磁界の変数と、X軸方向に一致する方向V1に関する電磁界の変数と、を交換することにより、解析空間Aのデータを転置する。結果として、転置装置100は、3次元座標系の各軸方向の格子数が「10,16,4」になる解析空間Aのデータを転置し、3次元座標系の各軸方向の格子数が「16,10,4」になる解析空間Aのデータにする。
次に、転置装置100は、転置後の解析空間Aを、演算素子PEの配列位置に対応する升目を有する格子により区切って、区切られた升目内の空間に分割する。そして、転置装置100は、各々の演算素子PEに、当該演算素子PEの配列位置に対応する升目内の空間を割り振って、割り振った空間の電磁界解析を実行させる。
転置装置100は、具体的には、例えば、各軸方向の格子数が「16,10,4」になる解析空間Aを、「5行4列」の演算素子PEの行列に対応するように、格子数が「16,2,1」になる20個の空間に分割する。ここでは、演算素子PEの行列の行方向と列方向とが、各々、Y軸方向とZ軸方向とに対応している。そして、転置装置100は、各々の演算素子PEに、配列位置に対応する空間を割り振って、割り振った空間の電磁界解析を実行させる。
これにより、転置装置100は、演算素子PEが効率よく算出することができるX軸方向に関する電磁界解析の処理量を増加させ、Y軸とZ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子PEは、転置後の解析空間Aの電磁界解析にかかる時間を、転置前の解析空間Aの電磁界解析にかかる時間より低減することができる。
また、転置装置100は、演算素子PEの行方向の配列数と列方向の配列数とから、演算素子PEの使用効率が向上するように解析空間Aのデータを転置してもよい。演算素子PEの使用効率が向上するように解析空間Aのデータを転置する具体例については、図5を用いて、または、図14および図15を用いて後述する。
(電磁界解析システムの一例)
図2は、実施の形態にかかる電磁界解析システムの一例を示す説明図である。電磁界解析システム200は、転置装置100と1または複数の演算装置Cとユーザ端末201とを含む。転置装置100は、演算装置Cとユーザ端末201と接続されている。
転置装置100は、ユーザ端末201から、転置前の解析空間Aの座標値や、当該座標における電磁界の値を受信する。次に、転置装置100は、演算素子PEの行方向および列方向の配列数と各軸方向の格子数とを用いて、各軸方向の電磁界の変数を交換して、解析空間Aのデータを転置する。そして、転置後の解析空間Aを、演算素子PEの配列位置に対応する升目を有する格子により区切り、演算素子PEに、当該演算素子PEの配列位置に対応する升目内に存在する空間の電磁界解析を実行させる。
演算装置Cは、制御部202と演算部203とを有する。制御部202と演算部203とは、ブリッジ204を介して接続されている。制御部202は、転置装置100により分割された空間のデータを受信し、演算素子PEに割り振る。演算部203は、行列状に配列された演算素子PEを含む。演算部203は、割り振られた空間のデータを用いて、割り振られた空間の電磁界解析を実行する。各演算素子PEは、各々、記憶装置Mを有し、ワークエリアまたは電磁界解析の演算結果の格納領域として使用する。
ユーザ端末201は、ユーザ端末201の利用者から、解析空間Aの座標値や当該座標における電磁界の値を受け付ける。ユーザ端末201は、受け付けた解析空間Aの座標値や当該座標における電磁界の値を転置装置100に送信する。
ここでは、演算部203内の行列状に配列された演算素子PEは、4個であるが、これに限らない。例えば、演算部203内の行列状に配列された演算素子PEは、6個であってもよい。また、演算装置Cは、演算部203を6個含むため、演算素子PEを24個含むがこれに限らない。例えば、演算装置Cは、演算素子PEを24個含む演算部203を1個含んでもよい。また、演算装置Cは、演算素子PEを2個含む演算部203を12個含んでもよい。また、演算装置Cは、24個以外の個数、演算素子PEを含んでもよい。
(転置装置100のハードウェア構成例)
図3は、実施の形態にかかる転置装置100のハードウェア構成例を示すブロック図である。図3において、転置装置100は、CPU(Central Processing Unit)301と、ROM(Read Only Memory)302と、RAM(Random Access Memory)303と、磁気ディスクドライブ304と、磁気ディスク305と、光ディスクドライブ306と、光ディスク307と、ディスプレイ308と、I/F(Interface)309と、キーボード310と、マウス311と、スキャナ312と、プリンタ313と、を備えている。また、各構成部はバス320によってそれぞれ接続されている。
ここで、CPU301は、転置装置100の全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。磁気ディスクドライブ304は、CPU301の制御に従って磁気ディスク305に対するデータのリード/ライトを制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。
光ディスクドライブ306は、CPU301の制御に従って光ディスク307に対するデータのリード/ライトを制御する。光ディスク307は、光ディスクドライブ306の制御で書き込まれたデータを記憶したり、光ディスク307に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ308は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ308は、例えば、液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)309は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク314に接続され、このネットワーク314を介して他の装置に接続される。そして、I/F309は、ネットワーク314と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F309には、例えばモデムやLANアダプタなどを採用することができる。
キーボード310は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス311は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ312は、画像を光学的に読み取り、転置装置100内に画像データを取り込む。なお、スキャナ312は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ313は、画像データや文書データを印刷する。プリンタ313には、例えば、レーザプリンタやインクジェットプリンタを採用することができる。なお、光ディスクドライブ306、光ディスク307、ディスプレイ308、キーボード310、マウス311、スキャナ312、およびプリンタ313の少なくともいずれか1つは、なくてもよい。
(転置装置100の機能的構成例)
次に、図4を用いて、転置装置100の機能的構成例について説明する。
図4は、転置装置100の機能的構成例を示すブロック図である。転置装置100は、検出部401と、転置部402と、出力部403と、を含む構成である。検出部401と、転置部402と、出力部403とは、具体的には、例えば、図3に示したROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、その機能を実現する。または、検出部401と、転置部402と、出力部403とは、I/F309により、その機能を実現する。
転置装置100は、演算素子PEが有する演算素子PEの電磁界解析が効率化するように解析空間Aのデータを転置する。また、転置装置100は、演算素子PEの行方向の配列数と列方向の配列数とから、演算素子PEの使用効率が向上するように解析空間Aのデータを転置してもよい。
まず、演算素子PEの電磁界解析が効率化するように解析空間Aのデータを転置する場合の転置装置100の機能について説明する。演算素子PEの電磁界解析が効率化するように解析空間Aのデータを転置する場合の転置装置100の機能は、例えば、検出部401と転置部402と出力部403とにより実現される。演算素子PEの電磁界解析が効率化するように解析空間Aのデータを転置する場合の転置装置100の処理は、例えば、図1を用いて説明した処理である。
検出部401は、3次元解析対象データについて、3次元座標系の第1軸の方向の格子の配列数、第2軸の方向の格子の配列数、および第3軸の方向の格子の配列数を検出する。ここで、3次元解析対象データは、例えば、3次元座標系に存在する格子状の解析空間Aに含まれる単位空間B群の各々における電磁界の初期条件を示すデータである。電磁界の初期条件を示すデータは、例えば、単位空間B群の各々における電磁界の初期値である。各軸の方向の格子の配列数は、例えば、解析空間Aの各方向V1〜V3が各軸方向に一致するように配置された場合に、各方向V1〜V3に連続して存在する解析空間A内の単位空間Bの個数であり、上述した格子数である。
検出部401は、図1の例では、図1に示した解析空間Aについて、各軸方向に一致するように配置された解析空間Aの各方向V1〜V3の格子数「10,16,4」を検出する。これにより、転置部402は、3次元解析対象データを転置することができる。検出されたデータは、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶領域に記憶される。
転置部402は、検出部401によって検出された各配列数と、複数の演算素子PEのうち行方向の演算素子PE群の配列数および列方向の演算素子PE群の配列数と、に基づいて、3次元解析対象データの格子群を転置する。ここで、複数の演算素子PEは、例えば、行列状に配列され、各々に記憶装置Mが接続されている。複数の演算素子PEは、例えば、解析対象データの電磁界解析処理を実行する演算装置Cが有する。転置部402は、具体的には、例えば、最大配列数になる3次元解析対象データの格子列の方向が、第1軸、第2軸および第3軸のうち、行方向および列方向のいずれにも対応していない軸の方向となるように、3次元解析対象データの格子群を転置する。
転置部402は、図1の例では、解析空間Aの各方向V1〜V3の格子数「10,16,4」の中から、最大の格子数「16」を特定し、最大の格子数になる方向V2を特定する。次に、転置部402は、特定された方向V2が電磁界解析が効率化されたX軸方向になるように、方向V2に関する電磁界の変数と方向V1に関する電磁界の変数とを交換することにより、解析空間Aのデータを転置する。そして、転置部402は、3次元座標系の各軸方向の格子数が「10,16,4」になる解析空間Aのデータを転置し、3次元座標系の各軸方向の格子数が「16,10,4」になる解析空間Aのデータにする。
これにより、転置部402は、演算素子PEによる電磁界解析を効率化させることができる解析対象データを生成することができる。転置されたデータは、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶領域に記憶される。
出力部403は、転置部402によって転置された3次元解析対象データを演算装置Cに出力する。出力部403は、具体的には、例えば、転置後の解析空間Aを、演算素子PEの行列の配列位置に対応する空間に分割する。次に、出力部403は、分割された配列位置に対応する空間を、当該配列位置に存在する演算素子PEに出力する。これにより、出力部403は、演算素子PEに、分割された空間の電磁界解析を実行させることができる。
出力形式としては、例えば、ディスプレイ308への表示、プリンタ313への印刷出力、I/F309による外部装置への送信がある。また、RAM303、磁気ディスク305、光ディスク307などの記憶領域に記憶することとしてもよい。
次に、演算素子PEの行方向の配列数と列方向の配列数とから、演算素子PEの使用効率が向上するように解析空間Aのデータを転置する場合の転置装置100の機能について説明する。演算素子PEの使用効率が向上するように解析空間Aのデータを転置する場合の転置装置100の機能は、例えば、検出部401と転置部402と出力部403とにより実現される。
ここで、検出部401と出力部403との機能は、上述した演算素子PEの電磁界解析が効率化するように解析空間Aのデータを転置する場合の機能と同様のため、説明を省略する。演算素子PEの使用効率が向上するように解析空間Aのデータを転置する場合の転置装置100の処理の具体例については、図5を用いて、または、図14および図15を用いて後述する。
転置部402は、各配列数のうち最小配列数が、行方向の演算素子PE群の配列数および列方向の演算素子PE群の配列数よりも大きいか否かを判定する。次に、転置部402は、大きいと判定された場合、最大配列数になる3次元解析対象データの格子列の方向が、第1軸、第2軸および第3軸のうち、行方向および列方向のいずれにも対応していない軸の方向となるように、3次元解析対象データの格子群を転置する。
そして、転置部402は、第1軸、第2軸および第3軸のうち、行方向の演算素子PE群の配列数および列方向の演算素子PE群の配列数のうち配列数が最小となる配列方向に対応する軸の方向を特定する。次に、転置部402は、最小配列数になる3次元解析対象データの格子列の方向が、特定した方向となるように、3次元解析対象データの格子群を転置する。
ここで、3次元座標系の各軸方向の格子数「8,6,10」、行方向の演算素子PEの配列数「4」、列方向の演算素子PE群の配列数「3」である場合を例に挙げる。ここでは、演算素子PEの行列の行方向と列方向とが、各々、Y軸方向とZ軸方向とに対応しているとする。この場合、転置部402は、具体的には、例えば、解析空間Aの各方向の格子数の中から、最大格子数「10」と最小格子数「6」を特定する。次に、転置部402は、解析空間Aの方向V1〜V3のうち、最大格子数「10」になる方向がX軸方向となり、最小格子数「6」になる方向がZ軸方向となるように、解析空間Aのデータを転置する。結果として、転置部402は、各軸方向の格子数が「8,6,10」になる解析空間Aを、各軸方向の格子数が「10,8,6」になる解析空間Aのデータにする。
これにより、転置部402は、演算素子PEによる電磁界解析を効率化させ、かつ、演算素子PEの使用効率を向上させることができる解析対象データを生成することができる。転置されたデータは、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶領域に記憶される。
また、転置部402は、各配列数のうち最大配列数が、行方向の演算素子PE群の配列数および列方向の演算素子PE群の配列数よりも小さいか否かを判定する。次に、転置部402は、小さいと判定された場合、第1軸、第2軸および第3軸のうち、行方向の演算素子PE群の配列数および列方向の演算素子PE群の配列数のうち配列数が最大となる配列方向に対応する軸の方向を特定する。そして、転置部402は、最大配列数になる3次元解析対象データの格子列の方向が、特定した方向となるように、3次元解析対象データの格子群を転置する。
次に、転置部402は、最小配列数になる3次元解析対象データの格子列の方向が、第1軸、第2軸および第3軸のうち、行方向および列方向のいずれにも対応していない軸の方向となるように、3次元解析対象データの格子群を転置する。
ここで、3次元座標系の各軸方向の格子数「3,2,2」、行方向の演算素子PE群の配列数「4」、列方向の演算素子PE群の配列数「3」である場合を例に挙げる。ここでは、演算素子PEの行列の行方向と列方向とが、各々、Y軸方向とZ軸方向とに対応しているとする。この場合、転置部402は、具体的には、例えば、解析空間Aの各方向の格子数の中から、最大格子数「3」と最小格子数「2」を特定する。次に、転置部402は、解析空間Aの方向V1〜V3のうち、最大格子数「3」になる方向がY軸方向となり、最小格子数「2」になる方向がX軸方向となるように、解析空間Aのデータを転置する。結果として、転置部402は、各軸方向の格子数が「3,2,2」になる解析空間Aを、各軸方向の格子数が「2,3,2」になる解析空間Aのデータにする。
これにより、転置部402は、演算素子PEによる電磁界解析を効率化させ、かつ、演算素子PEの使用効率を向上させることができる解析対象データを生成することができる。転置されたデータは、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶領域に記憶される。
転置部402は、行方向の演算素子PE群および列方向の演算素子PE群のうち演算素子PEが多い第1の配列数が、各配列数のうち最小配列数よりも大きいか否かを判定する。また、転置部402は、行方向の演算素子PE群および列方向の演算素子PE群のうち演算素子PEが少ない第2の配列数が、各配列数のうち最大配列数よりも小さいか否かを判定する。ここで、転置部402は、第1の配列数が最小配列数よりも大きく、かつ、第2の配列数が最大配列数よりも小さいと判定された場合に、以降の処理を実行する。
転置部402は、第1軸、第2軸および第3軸のうち、第1の配列数の配列方向に対応する軸の方向を特定する。次に、転置部402は、最大配列数以下かつ最小配列数以上の中間配列数、および最大配列数のうち、第1の配列数に近い配列数になる3次元解析対象データの格子列の方向が、特定した方向となるように、3次元解析対象データの格子群を転置する。そして、転置部402は、第1軸、第2軸および第3軸のうち、第2の配列数の配列方向に対応する軸の方向を特定する。次に、転置部402は、中間配列数および最小配列数のうち、第2の配列数に近い配列数になる3次元解析対象データの格子列の方向が、特定した方向となるように、3次元解析対象データの格子群を転置する。
ここで、3次元座標系の各軸方向の格子数「6,8,2」、行方向の演算素子PE群の配列数「4」、列方向の演算素子PE群の配列数「3」である場合を例に挙げる。ここでは、演算素子PEの行列の行方向と列方向とが、各々、Y軸方向とZ軸方向とに対応しているとする。この場合、転置部402は、具体的には、例えば、解析空間Aの各方向の格子数の中から、最大格子数「8」と中間格子数「6」と最小格子数「2」を特定する。次に、転置部402は、最大格子数「8」と中間格子数「6」とのうち、行方向の格子数「4」に近い格子数「6」になる方向がY軸方向となるように、解析空間Aのデータを転置する。
そして、転置部402は、中間格子数「6」と最小格子数「2」とのうち、Y軸方向となるように転置されておらず、かつ、列方向の配列数「3」に近い格子数「2」の方向がZ軸方向となるように、解析空間Aのデータを転置する。結果として、転置部402は、各軸方向の格子数が「6,8,2」になる解析空間Aを、各軸方向の格子数が「8,6,2」になる解析空間Aのデータにする。
これにより、転置部402は、演算素子PEによる電磁界解析を効率化させ、かつ、演算素子PEの使用効率を向上させることができる解析対象データを生成することができる。転置されたデータは、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶領域に記憶される。
(実施例1)
次に、図5を用いて、転置装置100による解析空間Aのデータの転置の実施例1について説明する。実施例1は、演算素子PEの使用効率が向上するように解析空間Aの単位空間Bを転置する具体例である。
図5は、転置装置100による解析空間Aのデータの転置の実施例1を示す説明図である。図5において、解析空間Aの各方向V1〜V3の格子数は「8,10,6」であり、方向V1がX軸方向に一致し、方向V2がY軸方向に一致し、方向V3がZ軸方向に一致するように配置されている。そのため、各軸方向の格子数は「8,10,6」である。また、複数の演算素子PEは、「4行3列」の2次元行列状に配列されている。ここでは、演算素子PEの行列の行方向と列方向とが、各々、Y軸方向とZ軸方向とに対応しているとする。
ここで、転置装置100は、解析空間Aの大きさが最大になる方向が、電磁界解析が効率化されたX軸方向になるように、解析空間Aのデータを転置する。次に、転置装置100は、解析空間Aの大きさが最小になる方向が、複数の演算素子PEの行方向と列方向とのうち、配列数が大きい方向に対応する軸方向になるように、解析空間Aのデータを転置する。そして、転置後の解析空間Aを、演算素子PEの配列位置に対応する升目を有する格子により区切り、区切られた升目内に存在する空間について、演算素子PEに電磁界解析を実行させる。
転置装置100は、具体的には、例えば、解析空間Aの各方向V1〜V3の格子数「8,10,6」の中から、最大の格子数「10」を特定し、最大の格子数になる方向V2を特定する。次に、転置装置100は、特定された方向V2が電磁界解析が効率化されたX軸方向になるように、方向V2に関する電磁界の変数と、X軸方向に一致する方向V1に関する電磁界の変数と、を交換することにより、解析空間Aのデータを転置する。
次に、転置装置100は、転置後の解析空間Aの各方向V1〜V3の格子数「10,8,6」の中から、最小の格子数「6」を特定し、最小の格子数になる方向V3を特定する。次に、転置装置100は、特定された方向V3が、複数の演算素子PEの行方向と列方向のうち、配列数が小さい方向に対応するZ軸方向になるように、解析空間Aのデータを転置する。ここでは、方向V3はZ軸方向に一致しているため、解析空間Aのデータは転置されない。結果として、転置装置100は、3次元座標系の各軸方向の格子数が「8,10,6」になる解析空間Aのデータを転置し、3次元座標系の各軸方向の格子数が「10,8,6」になる解析空間Aのデータにする。
次に、転置装置100は、転置後の解析空間Aを、演算素子PEの配列位置に対応する升目を有する格子により区切って、区切られた升目内の空間に分割する。そして、転置装置100は、各々の演算素子PEに、当該演算素子PEの配列位置に対応する升目内の空間を割り振って、割り振った空間の電磁界解析を実行させる。
転置装置100は、具体的には、例えば、各軸方向の格子数が「10,8,6」になる解析空間Aを、「4行3列」の複数の演算素子PEの配列位置に対応するように、格子数が「10,2,2」になる12個の空間に分割する。そして、転置装置100は、各々の演算素子PEに、配列位置に対応する空間を割り振って、割り振った空間の電磁界解析を実行させる。
これにより、転置装置100は、演算素子PEが効率よく算出することができるX軸方向に関する電磁界解析の処理量を増加させ、Y軸とZ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子PEは、転置後の解析空間Aの電磁界解析にかかる時間を、転置前の解析空間Aの電磁界解析にかかる時間より低減することができる。
また、転置装置100は、各々の演算素子PEに、転置前では最大48個の単位空間Bを割り振ったが、転置後では最大40個の単位空間Bを割り振ることになる。そのため、転置装置100は、各々の演算素子PEの処理量を平均化し、各々の演算素子PEの使用効率を向上させることができる。
(剰余単位空間Bの割り振り順序)
次に、図6を用いて、剰余単位空間Bの割り振り順序について説明する。剰余単位空間Bとは、複数の演算素子PEの配列位置に対応するように解析空間Aを分割する場合に、同数に分割できずに余った単位空間Bである。
図6は、剰余単位空間Bの割り振り順序を示す説明図である。図6の例では、複数の演算素子PEは、「4行3列」の2次元行列状に配列されている。図5に示した転置前の解析空間Aを例に挙げると、転置装置100は、行方向の配列数「4」に対してY軸方向の格子数が「10」であるため、同数に分割することができない。
この場合、転置装置100は、複数の演算素子PEの行列の内側に配列された演算素子PEに、多くの単位空間Bが割り振られるように、解析空間Aを分割する。転置装置100は、例えば、複数の演算素子PEのうち、行列の内側に配列された演算素子PEには40個の単位空間Bが割り振られ、行列の外側に配列された演算素子PEには32個の単位空間Bが割り振られるように解析空間Aを分割する。
これにより、転置装置100は、電磁界解析における境界吸収条件の演算を実行する行列の外側に配列された演算素子PEの処理量を、境界吸収条件の演算を実行しない行列の内側に配列された演算素子PEの処理量より少なくする。結果として、境界吸収条件の演算の処理量を含め、各々の演算素子PEの処理量を平均化することができる。
(演算素子PEによる電磁界解析)
次に、図7〜図9を用いて、転置装置100が演算素子PEに実行させる電磁界解析について説明する。転置装置100は、演算素子PEに、下記式(1)〜式(6)に示すFDTD法の演算式を解かせることにより、割り振った空間に含まれる各単位空間Bにおける電磁界の値を算出させる。
ここで、ExはX軸方向の電界の値、EyはY軸方向の電界の値、EzはZ軸方向の電界の値である。また、HxはX軸方向の磁界の値、HyはY軸方向の磁界の値、HzはZ軸方向の磁界の値である。また、tは、時刻である。i,j,kは、各々、X軸、Y軸、Z軸の座標値である。α,βは、定数である。
Figure 0005853794
Figure 0005853794
Figure 0005853794
Figure 0005853794
Figure 0005853794
Figure 0005853794
転置装置100は、具体的には、例えば、図7に示す実行命令列を、演算素子PEに送信することによって、演算素子PEに割り振った空間の電磁界解析を実行させる。次に、図7を用いて実行命令列について説明する。
図7は、実行命令列の一例を示す説明図である。図7に示すように、まず、転置装置100は、Exを算出する実行命令列を生成する。Exを算出する実行命令列には、例えば、上記式(1)に代入する定数αx,βxや電磁界の値Ex,Hz,Hyを読み出すリード命令が含まれる(図7の例では、「SDRAM READ []」と表す)。
また、Exを算出する実行命令列には、例えば、読み出した値を、上記式(1)に代入して、電界の値Exを算出する演算命令が含まれる(図7の例では、「CARC」と表す)。また、Exを算出する実行命令列には、例えば、算出した電界の値Exを記憶装置Mに書き込むライト命令が含まれる(図7の例では、「SDRAM WRITE []」と表す)。
これにより、演算素子PEは、読み出し命令に従って、時刻「t=0」における電界の値Ex,Ey,Ezの初期値と、時刻「t=1/2」における磁界の値Hx,Hy,Hzの初期値と、を記憶装置Mから読み出す。次に、演算素子PEは、演算命令に従って、上記式(1)〜式(3)に、読み出した電磁界の値Ex,Ey,Ez,Hx,Hy,Hzを代入する。そして、演算素子PEは、時刻「t=1」における電界の値Ex,Ey,Ezを算出する。
次に、演算素子PEは、読み出し命令に従って、時刻「t=1」における電界の値Ex,Ey,Ezと、時刻「t=1/2」における磁界の値Hx,Hy,Hzの初期値と、を記憶装置Mから読み出す。次に、演算素子PEは、演算命令に従って、上記式(4)〜式(6)に、読み出した電磁界の値Ex,Ey,Ez,Hx,Hy,Hzを代入し、時刻「t=1+1/2」における磁界の値Hx,Hy,Hzを算出する。このように、演算素子PEは、実行命令列に従って、以上の演算を繰り返し、電界の値と磁界の値とを交互に算出することにより、規定の時刻における電磁界の値を算出する。
規定の時刻は、例えば、ユーザ端末201の利用者によりユーザ端末201に入力され、ユーザ端末201から転置装置100に送信され、転置装置100により演算素子PEに送信された電磁界解析の終了時刻である。
ここで、演算素子PEは、前回の時刻における隣接する単位空間Bの電磁界の値を式(1)〜式(6)に代入することにより、今回の時刻における電磁界の値を算出している。そのため、演算素子PEは、隣接する演算素子PEと、前回の時刻における電磁界の値を交換する場合がある。
Exを算出する実行命令列には、例えば、算出した電界の値Exを、隣接する演算素子PEに送信する送信命令が含まれる(図7の例では、「FPGAデータ転送(送信)」と表す)。また、Exを算出する実行命令列には、例えば、隣接する演算素子PEにより算出された電界の値Exを受信する受信命令が含まれる(図7の例では、「FPGAデータ転送(受信)」と表す)。次に、図8を用いて、演算素子EPが、実行命令列に従って、隣接する演算素子PE間において、電磁界の値を交換する場合について説明する。
図8は、演算素子PE間のデータ交換を示す説明図である。図8に示すように、演算素子PE1〜PE16が、各々の単位空間Bの電磁界解析を実行している。各演算素子PEは、転置装置100によって分割された境界に存在する単位空間Bの電磁界について、データ交換を行う。
例えば、演算素子PE1と演算素子PE2とは、演算素子PE間において、隣接する単位空間BのZ軸方向に関する電磁界の値Ez,Hzを交換する。これにより、演算素子PEは、隣接する演算素子PEの演算結果を取得し、電磁界解析を実行することができる。
ここで、転置装置100は、各々の演算素子PEの電磁界解析の実行が終了すると、各々の演算素子PEの電磁界解析結果を取得し、解析空間A全体の電磁界解析結果を出力する。そのため、図7に示した実行命令列には、例えば、算出した電磁界の値を転置装置100に送信する送信命令が含まれる(図7の例では、「演算結果出力」と表す)。次に、図9を用いて解析空間A全体の電磁界解析結果の出力について説明する。
図9は、解析空間A全体の電磁界解析結果の出力を示す説明図である。図9に示すように、転置装置100は、解析空間AのY軸方向の電磁界の値とZ軸方向の電磁界の値とを交換した解析空間Aを分割して、4つの演算素子PEに割り振ったとする。
演算素子PEは、実行命令列に従って割り振られた単位空間Bの電磁界の値を算出すると、送信命令に従って算出された電磁界の値を転置装置100に送信する。ここで、演算素子PEは、転置装置100により交換されたY軸およびZ軸方向の電磁界の値を、交換し直してもよい。
転置装置100は、演算素子PEから電磁界の値を受信すると、受信した電磁界の値をマージして、解析空間A全体の電磁界の値を生成する。そして、転置装置100は、生成した電磁界の値を出力する。これにより、転置装置100の利用者は、解析空間Aの電磁界の値を取得することができる。
(実施例1にかかる電磁界解析処理の詳細な処理手順)
次に、図10〜図12を用いて、実施例1にかかる電磁界解析処理の詳細な処理手順について説明する。
図10〜図12は、実施例1にかかる電磁界解析処理の詳細な処理手順を示すシーケンス図である。図10に示すように、ユーザ端末201は、解析条件の入力を受け付ける(ステップS1001)。次に、ユーザ端末201は、受け付けた解析条件を転置装置100に送信する(ステップS1002)。
そして、転置装置100は、ユーザ端末201から解析条件を受信すると、図13または図17に示す転置処理を実行する(ステップS1003)。次に、転置装置100は、演算装置Cの制御部202に、転置処理による転置後の解析空間Aを送信する(ステップS1004)。そして、制御部202は、解析空間Aを受信すると、解析空間Aの電磁界解析に使用するワークエリアを確保する(ステップS1005)。
次に、転置装置100は、電磁界解析の実行命令列を生成する(ステップS1006)。そして、転置装置100は、生成された実行命令列を演算装置Cの制御部202に送信する(ステップS1007)。
次に、制御部202は、初期化処理を実行する(ステップS1008)。そして、制御部202は、受信した実行命令列を演算部203に割り振る(ステップS1009)。次に、演算部203は、初期値を設定する(ステップS1010)。そして、制御部202は、演算を実行する(ステップS1011)。次に、図11の処理に移行する。
図11に示すように、演算部203は、解析空間Aの電界の値を算出する(ステップS1101)。次に、演算部203は、演算素子PE間において算出された電界の値を交換する(ステップS1102)。
そして、演算部203は、解析空間Aの磁界の値を算出する(ステップS1103)。次に、演算部203は、演算素子PE間において算出された磁界の値を交換する(ステップS1104)。そして、演算部203は、算出された電磁界の値を制御部202に送信する(ステップS1105)。
次に、制御部202は、電磁界の値を受信すると、受信した電磁界の値に逆転置処理を実行する(ステップS1106)。そして、制御部202は、逆転置処理を実行された電磁界の値を転置装置100に送信する(ステップS1107)。
次に、転置装置100は、制御部202から電磁界の値を受信すると、受信した電磁界の値を結合して、解析空間Aの電磁界の値を生成する(ステップS1108)。そして、転置装置100は、生成した解析空間Aの電磁界の値を、ユーザ端末201に送信する(ステップS1109)。次に、ユーザ端末201は、受信した解析空間Aの電磁界の値を出力する(ステップS1110)。そして、図12の処理に移行する。
図12に示すように、演算部203は、電磁界解析処理が終了したか否かを判定する(ステップS1201)。ここで、終了していない場合(ステップS1201:No)、演算部203は、図11のステップS1101に戻る。
一方、終了した場合(ステップS1201:Yes)、演算部203は、ワークエリアを開放する(ステップS1202)。次に、演算部203は、電磁界解析処理が終了した通知を制御部202に送信する(ステップS1203)。そして、演算部203は、電磁界解析処理を終了する。
次に、制御部202は、電磁界解析処理が終了したか否かを判定する(ステップS1204)。ここで、終了していない場合(ステップS1204:No)、制御部202は、図11のステップS1106に戻る。
一方、終了した場合(ステップS1204:Yes)、制御部202は、電磁界解析処理が終了した通知を転置装置100に送信する(ステップS1205)。そして、制御部202は、電磁界解析処理を終了する。
次に、転置装置100は、電磁界解析処理が終了したか否かを判定する(ステップS1206)。ここで、終了していない場合(ステップS1206:No)、転置装置100は、図11のステップS1108に戻る。
一方、終了した場合(ステップS1206:Yes)、転置装置100は、電磁界解析処理が終了した通知をユーザ端末201に送信する(ステップS1207)。そして、転置装置100は、電磁界解析処理を終了する。
次に、ユーザ端末201は、電磁界解析処理が終了したか否かを判定する(ステップS1208)。ここで、終了していない場合(ステップS1208:No)、ユーザ端末201は、図11のステップS1110に戻る。一方、終了した場合(ステップS1208:Yes)、ユーザ端末201は、電磁界解析処理を終了する。これにより、電磁界解析システム200は、解析空間Aの電磁界解析を実行し、解析空間Aの電磁界の値を出力することができる。
(実施例1にかかる転置処理の詳細な処理手順)
次に、図13を用いて、実施例1にかかる転置装置100による転置処理の詳細な処理手順について説明する。転置処理は、図10のステップS1003に示した処理である。
図13は、実施例1にかかる転置装置100による転置処理の詳細な処理手順を示すフローチャートである。図13に示すように、まず、転置装置100は、解析空間Aの各方向V1〜V3の格子数を示す格子数情報が入力されたか否かを判定する(ステップS1301)。ここで、格子数情報が入力されていない場合(ステップS1301:No)、転置装置100は、ステップS1301に戻り、格子数情報の入力を待つ。
一方、格子数情報が入力された場合(ステップS1301:Yes)、転置装置100は、各方向V1〜V3の格子数の中から、最大格子数と中間格子数と最小格子数とを特定する(ステップS1302)。次に、転置装置100は、変数Xに最大格子数を設定し、変数Yに中間格子数を設定し、変数Zに最小格子数を設定する(ステップS1303)。
そして、転置装置100は、図14に示す方向変換パターン決定処理を実行して、方向変換パターンを決定する(ステップS1304)。次に、転置装置100は、決定した方向変換パターンに従って、各軸方向の変数を交換する(ステップS1305)。そして、転置装置100は、転置処理を終了する。
これにより、転置装置100は、演算素子PEにおいて、演算素子PEが効率よく算出することができるX軸方向に関する電磁界解析の処理量を増加させ、Y軸とZ軸との方向に関する電磁界解析の処理量を減少させることができる。また、転置装置100は、転置前の解析空間Aの電磁界解析にかかる時間より低減した上で、各々の演算素子PEの処理量を平均化することができる。
(方向変換パターン決定処理の詳細な処理手順)
次に、図14を用いて、転置装置100による方向変換パターン決定処理の詳細な処理手順について説明する。
図14は、転置装置100による方向変換パターン決定処理の詳細な処理手順を示すフローチャートである。図14に示すように、転置装置100は、変数Xに設計された数がX軸格子数か否かを判定する(ステップS1401)。ここで、変数Xに設計された数がX軸格子数である場合(ステップS1401:Yes)、転置装置100は、変数Zに設定された数がZ軸格子数か否かを判定する(ステップS1402)。
ここで、変数Zに設定された数がZ軸格子数である場合(ステップS1402:Yes)、転置装置100は、方向変換パターンP0を採用する(ステップS1403)。次に、転置装置100は、方向変換パターン決定処理を終了する。
一方、変数Zに設定された数がZ軸格子数でない場合(ステップS1402:No)、転置装置100は、方向変換パターンP1を採用する(ステップS1404)。次に、転置装置100は、方向変換パターン決定処理を終了する。
一方、ステップS1401において、変数Xに設計された数がX軸格子数でない場合(ステップS1401:No)、転置装置100は、変数Xに設定された数がY軸格子数か否かを判定する(ステップS1405)。ここで、変数Xに設計された数がY軸格子数である場合(ステップS1405:Yes)、転置装置100は、変数Zに設定された数がZ軸格子数か否かを判定する(ステップS1406)。
ここで、変数Zに設定された数がZ軸格子数である場合(ステップS1406:Yes)、転置装置100は、方向変換パターンP2を採用する(ステップS1407)。次に、転置装置100は、方向変換パターン決定処理を終了する。
一方、変数Zに設定された数がZ軸格子数でない場合(ステップS1406:No)、転置装置100は、方向変換パターンP3を採用する(ステップS1408)。次に、転置装置100は、方向変換パターン決定処理を終了する。
一方、ステップS1405において、変数Xに設計された数がY軸格子数でない場合(ステップS1405:No)、転置装置100は、変数Zに設定された数がY軸格子数か否かを判定する(ステップS1409)。
ここで、変数Zに設定された数がY軸格子数である場合(ステップS1409:Yes)、転置装置100は、方向変換パターンP4を採用する(ステップS1410)。次に、転置装置100は、方向変換パターン決定処理を終了する。
一方、変数Zに設定された数がY軸格子数でない場合(ステップS1409:No)、転置装置100は、方向変換パターンP5を採用する(ステップS1411)。次に、転置装置100は、方向変換パターン決定処理を終了する。これにより、転置装置100は、解析空間Aのどの方向とどの方向とを交換するかを特定することができる。
(実施例2)
次に、図15および図16を用いて、転置装置100による解析空間Aのデータの転置の実施例2について説明する。実施例2は、演算素子PEの使用効率が向上するように解析空間Aの単位空間Bを転置する具体例である。
図15および図16は、転置装置100による解析空間Aのデータの転置の実施例2を示す説明図である。図15において、解析空間Aの各方向V1〜V3の格子数は「3,2,2」であり、方向V1がX軸方向に一致し、方向V2がY軸方向に一致し、方向V3がZ軸方向に一致するように配置されている。そのため、各軸方向の格子数は「3,2,2」である。また、複数の演算素子PEは、「4行3列」の2次元行列状に配列されている。ここでは、演算素子PEの行列の行方向と列方向とが、各々、Y軸方向とZ軸方向とに対応しているとする。
ここで、転置装置100は、解析空間Aの大きさが最大になる方向が、複数の演算素子PEの行方向と列方向とのうち、配列数が大きい方向に対応する軸方向になるように、解析空間Aのデータを転置する。次に、転置装置100は、解析空間Aの大きさが最小になる方向が、複数の演算素子PEの行方向と列方向とのうち、配列数が小さい方向に対応する軸方向になるように、解析空間Aのデータを転置する。そして、転置後の解析空間Aを、演算素子PEの配列位置に対応する升目を有する格子により区切り、区切られた升目内に存在する空間について、演算素子PEに電磁界解析を実行させる。
転置装置100は、具体的には、例えば、解析空間Aの各方向V1〜V3の格子数「3,2,2」の中から、最大の格子数「3」を特定し、最大の格子数になる方向V1を特定する。次に、転置装置100は、特定された方向V1が、複数の演算素子PEの行方向と列方向のうち、配列数が大きい方向に対応するY軸方向を特定する。そして、転置装置100は、特定した方向V1が特定したY軸方向になるように、方向V1に関する電磁界の変数と、Y軸方向に一致する方向V2に関する電磁界の変数と、を交換することにより、解析空間Aのデータを転置する。
次に、転置装置100は、転置後の解析空間Aの各方向V1〜V3の格子数「2,3,2」の中から、最小の格子数「2」を特定し、最小の格子数になる方向V3を特定する。次に、転置装置100は、特定された方向V3が、複数の演算素子PEの行方向と列方向のうち、配列数が小さい方向に対応するZ軸方向になるように、解析空間Aのデータを転置する。ここでは、方向V3はZ軸方向に一致しているため、解析空間Aのデータは転置されない。結果として、転置装置100は、3次元座標系の各軸方向の格子数が「3,2,2」になる解析空間Aのデータを転置し、3次元座標系の各軸方向の格子数が「2,3,2」になる解析空間Aのデータにする。
次に、転置装置100は、転置後の解析空間Aを、演算素子PEの配列位置に対応する升目を有する格子により区切って、区切られた升目内の空間に分割する。そして、転置装置100は、各々の演算素子PEに、当該演算素子PEの配列位置に対応する升目内の空間を割り振って、割り振った空間の電磁界解析を実行させる。
転置装置100は、具体的には、例えば、各軸方向の格子数が「2,3,2」になる解析空間Aを、「4行3列」の複数の演算素子PEの配列位置に対応するように、格子数が「2,1,1」になる6個の空間に分割する。そして、転置装置100は、各々の演算素子PEに、配列位置に対応する空間を割り振って、割り振った空間の電磁界解析を実行させる。
これにより、転置装置100は、演算素子PEが効率よく算出することができるX軸方向に関する電磁界解析の処理量を増加させ、Y軸とZ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子PEは、転置後の解析空間Aの電磁界解析にかかる時間を、転置前の解析空間Aの電磁界解析にかかる時間より低減することができる。
また、転置装置100は、転置前では、解析空間Aを4個の空間に分割し、12個の演算素子PEのうち4個の演算素子PEの各々に割り振って電磁界解析を実行させていた。一方、転置装置100は、転置後では、解析空間Aを6個の空間に分割し、12個の演算素子PEのうち6個の演算素子PEの各々に割り振って電磁界解析を実行させることになる。そのため、転置装置100は、使用される演算素子PEの数を増大させ、各々の演算素子PEの処理量を平均化し、各々の演算素子PEの使用効率を向上させることができる。
また、図16において、解析空間Aの各方向V1〜V3の格子数は「6,8,2」であり、方向V1がX軸方向に一致し、方向V2がY軸方向に一致し、方向V3がZ軸方向に一致するように配置されている。そのため、各軸方向の格子数は「6,8,2」である。また、複数の演算素子PEは、「4行3列」の2次元行列状に配列されている。ここでは、演算素子PEの行列の行方向と列方向とが、各々、Y軸方向とZ軸方向とに対応しているとする。
ここで、転置装置100は、解析空間Aの大きさが最大になる方向および解析空間Aの大きさが中間になる方向のうち、複数の演算素子PEの行方向と列方向とのうち、配列数が大きい方に近い方向を特定する。次に、転置装置100は、特定された方向が、配列数が大きい方向に対応する軸方向になるように、解析空間Aのデータを転置する。
そして、転置装置100は、解析空間Aの大きさが最小になる方向および解析空間Aの大きさが中間になる方向のうち、複数の演算素子PEの行方向と列方向とのうち、配列数が小さい方に近い方向を特定する。次に、転置装置100は、特定された方向が、配列数が小さい方向に対応する軸方向になるように、解析空間Aのデータを転置する。そして、転置後の解析空間Aを、演算素子PEの配列位置に対応する升目を有する格子により区切り、区切られた升目内に存在する空間について、演算素子PEに電磁界解析を実行させる。
転置装置100は、具体的には、例えば、解析空間Aの各方向V1〜V3の格子数「6,8,2」の中から、最大格子数「8」と中間格子数「6」と最小格子数「2」を特定する。次に、転置装置100は、最大格子数「8」と中間格子数「6」とのうち、行方向の格子数「4」に近い格子数「6」になる方向V1がY軸方向となるように、解析空間Aのデータを転置する。
そして、転置装置100は、中間格子数「6」と最小格子数「2」とのうち、Y軸方向となるように転置されておらず、かつ、列方向の配列数「3」に近い格子数「2」になる方向V3がZ軸方向となるように、解析空間Aのデータを転置する。ここでは、方向V3はZ軸方向に一致しているため、解析空間Aのデータは転置されない。結果として、転置装置100は、各軸方向の格子数が「6,8,2」になる解析空間Aを、各軸方向の格子数が「8,6,2」になる解析空間Aのデータにする。
次に、転置装置100は、転置後の解析空間Aを、演算素子PEの配列位置に対応する升目を有する格子により区切って、区切られた升目内の空間に分割する。そして、転置装置100は、各々の演算素子PEに、当該演算素子PEの配列位置に対応する升目内の空間を割り振って、割り振った空間の電磁界解析を実行させる。
転置装置100は、具体的には、例えば、各軸方向の格子数が「8,6,2」になる解析空間Aを、「4行3列」の複数の演算素子PEの配列位置に対応するように、格子数が「6,2,1」になる8個の空間に分割する。そして、転置装置100は、各々の演算素子PEに、配列位置に対応する空間を割り振って、割り振った空間の電磁界解析を実行させる。
これにより、転置装置100は、演算素子PEが効率よく算出することができるX軸方向に関する電磁界解析の処理量を増加させ、Y軸とZ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子PEは、転置後の解析空間Aの電磁界解析にかかる時間を、転置前の解析空間Aの電磁界解析にかかる時間より低減することができる。また、転置装置100は、転置前の解析空間Aの電磁界解析にかかる時間より低減した上で、各々の演算素子PEの処理量を平均化することができる。
(実施例2にかかる電磁界解析処理の詳細な処理手順)
次に、実施例2にかかる電磁界解析処理の詳細な処理手順について説明する。ここで、実施例2にかかる電磁界解析処理は、図10〜図12を用いて説明した実施例1にかかる電磁界解析処理と同様の処理手順であるため、説明を省略する。
(実施例2にかかる転置層100による転置処理の詳細な処理手順)
次に、図17を用いて、実施例2にかかる転置装置100による転置処理の詳細な処理手順について説明する。転置処理は、図10のステップS1003に示した処理である。
図17は、実施例2にかかる転置装置100による転置処理の詳細な処理手順を示すフローチャートである。図17に示すように、まず、転置装置100は、格子数情報が入力されたか否かを判定する(ステップS1701)。ここで、格子数情報が入力されていない場合(ステップS1701:No)、転置装置100は、ステップS1701に戻り、格子数情報の入力を待つ。
一方、格子数情報が入力された場合(ステップS1701:Yes)、転置装置100は、各軸の格子数の中から、最大格子数と中間格子数と最小格子数とを特定する(ステップS1702)。
次に、転置装置100は、最小格子数が行方向の配列数Py以上か否かを判定する(ステップS1703)。ここで、最小格子数が行方向の配列数Py以上である場合(ステップS1703:Yes)、転置装置100は、変数Xに最大格子数を設定し、変数Yに中間格子数を設定し、変数Zに最小格子数を設定する(ステップS1704)。次に、転置装置100は、ステップS1711に移行する。
一方、最小格子数が行方向の配列数Py以上でない場合(ステップS1703:No)、転置装置100は、最大格子数が列方向の配列数Pz以下であるか否かを判定する(ステップS1705)。ここで、最大格子数が列方向の配列数Pz以下である場合(ステップS1705:Yes)、転置装置100は、変数Xに最小格子数を設定し、変数Yに中間格子数を設定し、変数Zに最大格子数を設定する(ステップS1706)。次に、転置装置100は、ステップS1711に移行する。
一方、最大格子数が列方向の配列数Pz以下でない場合(ステップS1705:No)、転置装置100は、最大格子数を行方向の配列数Pyにより除算したLmaxと、中間格子数を行方向の配列数Pyにより除算したLmidと、を算出する。また、転置装置100は、中間格子数を列方向の配列数Pzにより除算したMmidと、最小格子数を列方向の配列数Pzにより除算したMminと、を算出する(ステップS1707)。
次に、転置装置100は、変数Yに、LmaxとLmidとのうち、より1に近い値になる格子数を設定する(ステップS1708)。そして、転置装置100は、変数Zに、MmidとMminとのうち、より1に近い値になる格子数を設定する(ステップS1709)。次に、転置装置100は、変数Xに残余の格子数を設定する(ステップS1710)。そして、転置装置100は、ステップS1711に移行する。
ステップS1711において、転置装置100は、図14に示す方向変換パターン決定処理を実行して、方向変換パターンを決定する(ステップS1711)。次に、転置装置100は、決定した方向変換パターンに従って、各軸方向の変数を交換する(ステップS1712)。そして、転置装置100は、転置処理を終了する。
これにより、転置装置100は、演算素子PEにおいて、演算素子PEが効率よく算出することができるX軸方向に関する電磁界解析の処理量を増加させ、Y軸とZ軸との方向に関する電磁界解析の処理量を減少させることができる。また、転置装置100は、転置前の解析空間Aの電磁界解析にかかる時間より低減した上で、各々の演算素子PEの処理量を平均化することができる。
以上説明したように、転置装置100は、最大格子数になる解析空間Aの方向が、3次元直交座標系の各軸のうち、解析空間Aが分割されない軸の方向になるように、解析空間Aのデータを転置する。これにより、転置装置100は、演算素子PEが効率よく算出することができるX軸方向に関する電磁界解析の処理量を増加させ、Y軸とZ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子PEは、転置後の解析空間Aの電磁界解析にかかる時間を、転置前の解析空間Aの電磁界解析にかかる時間より低減することができる。
さらに、転置装置100は、最小格子数になる解析空間Aの方向が、3次元直交座標系の各軸のうち、演算素子PEの行方向および列方向のうち配列数が最小になる方向に対応する軸の方向になるように、解析空間Aのデータを転置する。これにより、転置装置100は、転置前の解析空間Aの電磁界解析にかかる時間より低減した上で、各々の演算素子PEの処理量を平均化することができる。
また、転置装置100は、最大格子数になる解析空間Aの方向が、3次元直交座標系の各軸のうち、演算素子PEの行方向および列方向のうち配列数が最大になる方向に対応する軸の方向になるように、解析空間Aのデータを転置する。さらに、転置装置100は、最小格子数になる解析空間Aの方向が、3次元直交座標系の各軸のうち、解析空間Aが分割されない軸の方向になるように、解析空間Aのデータを転置する。
これにより、転置装置100は、演算素子PEが効率よく算出することができるX軸方向に関する電磁界解析の処理量を増加させ、Y軸とZ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子PEは、転置後の解析空間Aの電磁界解析にかかる時間を、転置前の解析空間Aの電磁界解析にかかる時間より低減することができる。また、転置装置100は、転置前の解析空間Aの電磁界解析にかかる時間より低減した上で、各々の演算素子PEの処理量を平均化することができる。
また、転置装置100は、最大格子数および中間格子数のうち、演算素子PEの行方向および列方向の配列数のうち最大配列数に近い格子数になる方向を特定する。次に、転置装置100は、特定した方向が、3次元直交座標系の各軸のうち、演算素子PEの行方向および列方向のうち最大配列数になる方向に対応する軸の方向になるように、解析空間Aのデータを転置する。
さらに、転置装置100は、最小格子数および中間格子数のうち、演算素子PEの行方向および列方向の配列数のうち最小配列数に近い格子数になる方向を特定する。次に、転置装置100は、特定した方向が、3次元直交座標系の各軸のうち、演算素子PEの行方向および列方向のうち最小配列数になる方向に対応する軸の方向になるように、解析空間Aのデータを転置する。
これにより、転置装置100は、演算素子PEが効率よく算出することができるX軸方向に関する電磁界解析の処理量を増加させ、Y軸とZ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子PEは、転置後の解析空間Aの電磁界解析にかかる時間を、転置前の解析空間Aの電磁界解析にかかる時間より低減することができる。また、転置装置100は、転置前の解析空間Aの電磁界解析にかかる時間より低減した上で、各々の演算素子PEの処理量を平均化することができる。
なお、本実施の形態で説明した転置方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本転置プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本転置プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明した転置装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と表す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、例えば、上述した転置装置100の機能(検出部401、転置部402、出力部403)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、転置装置100を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し3次元座標系に存在する格子状の3次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータであって、
前記3次元解析対象データについて、前記3次元座標系の第1軸の方向の格子の配列数、第2軸の方向の格子の配列数、および第3軸の方向の格子の配列数を検出する検出部と、
前記検出部によって検出された各配列数と、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数と、に基づいて、前記3次元解析対象データの格子群を転置する転置部と、
前記転置部によって転置された3次元解析対象データを前記演算装置に出力する出力部と、
を有することを特徴とする転置装置。
(付記2)前記転置部は、
各配列数のうち最小配列数が、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数よりも大きい場合、最大配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向および前記列方向のいずれにも対応していない軸の方向となるように、前記3次元解析対象データの格子群を転置することを特徴とする付記1に記載の転置装置。
(付記3)前記転置部は、
最小配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最小となる配列方向に対応する軸の方向となるように、前記3次元解析対象データの格子群を転置することを特徴とする付記2に記載の転置装置。
(付記4)前記転置部は、
各配列数のうち最大配列数が、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数よりも小さい場合、最大配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最大となる配列方向に対応する軸の方向となるように、前記3次元解析対象データの格子群を転置することを特徴とする付記1に記載の転置装置。
(付記5)前記転置部は、
最小配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向および前記列方向のいずれにも対応していない軸の方向となるように、前記3次元解析対象データの格子群を転置することを特徴とする付記4に記載の転置装置。
(付記6)前記転置部は、
前記行方向の演算素子群および前記列方向の演算素子群のうち演算素子が多い第1の配列数が、各配列数のうち最小配列数よりも大きく、前記行方向の演算素子群および前記列方向の演算素子群のうち演算素子が少ない第2の配列数が、各配列数のうち最大配列数よりも小さい場合、最大配列数以下かつ最小配列数以上の中間配列数、および最大配列数のうち、前記第1の配列数に近い配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記第1の配列数の配列方向に対応する軸の方向となるように、前記3次元解析対象データの格子群を転置することを特徴とする付記1に記載の転置装置。
(付記7)前記転置部は、
中間配列数および最小配列数のうち、前記第2の配列数に近い配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記第2の配列数の配列方向に対応する軸の方向となるように、前記3次元解析対象データの格子群を転置することを特徴とする付記6に記載の転置装置。
(付記8)行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し3次元座標系に存在する格子状の3次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータが、
前記3次元解析対象データについて、前記3次元座標系の第1軸の方向の格子の配列数、第2軸の方向の格子の配列数、および第3軸の方向の格子の配列数を検出し、
検出された各配列数と、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数と、に基づいて、前記3次元解析対象データの格子群を転置し、
転置された3次元解析対象データを前記演算装置に出力する、
処理を実行することを特徴とする転置方法。
(付記9)行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し3次元座標系に存在する格子状の3次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータに、
前記3次元解析対象データについて、前記3次元座標系の第1軸の方向の格子の配列数、第2軸の方向の格子の配列数、および第3軸の方向の格子の配列数を検出し、
検出された各配列数と、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数と、に基づいて、前記3次元解析対象データの格子群を転置し、
転置された3次元解析対象データを前記演算装置に出力する、
処理を実行させることを特徴とする転置プログラム。
100 転置装置
C 演算装置
201 ユーザ端末
PE 演算素子
M 記憶装置
401 検出部
402 転置部
403 出力部

Claims (8)

  1. 行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し3次元座標系に存在する格子状の3次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータであって、
    前記3次元解析対象データについて、前記3次元座標系の第1軸の方向の格子の配列数、第2軸の方向の格子の配列数、および第3軸の方向の格子の配列数を検出する検出部と、
    前記検出部によって検出された各配列数のうち最小配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも大きい場合、最大配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向に対応する軸、および前記列方向に対応する軸のいずれとも異なる軸の方向となるように、前記3次元解析対象データの格子群を転置する転置部と、
    前記転置部によって転置された3次元解析対象データを前記演算装置に出力する出力部と、
    を有することを特徴とする転置装置。
  2. 前記転置部は、
    最小配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最小となる配列方向に対応する軸の方向となるように、前記3次元解析対象データの格子群を転置することを特徴とする請求項1に記載の転置装置。
  3. 行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し3次元座標系に存在する格子状の3次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータであって、
    前記3次元解析対象データについて、前記3次元座標系の第1軸の方向の格子の配列数、第2軸の方向の格子の配列数、および第3軸の方向の格子の配列数を検出する検出部と、
    前記検出部によって検出された各配列数のうち最大配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも小さい場合、最大配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最大となる配列方向に対応する軸の方向となるように、前記3次元解析対象データの格子群を転置する転置部と、
    前記転置部によって転置された3次元解析対象データを前記演算装置に出力する出力部と、
    を有することを特徴とする転置装置。
  4. 前記転置部は、
    最小配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向に対応する軸、および前記列方向に対応する軸のいずれとも異なる軸の方向となるように、前記3次元解析対象データの格子群を転置することを特徴とする請求項3に記載の転置装置。
  5. 行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し3次元座標系に存在する格子状の3次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータが、
    前記3次元解析対象データについて、前記3次元座標系の第1軸の方向の格子の配列数、第2軸の方向の格子の配列数、および第3軸の方向の格子の配列数を検出し、
    検出された各配列数のうち最小配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも大きい場合、最大配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向に対応する軸、および前記列方向に対応する軸のいずれとも異なる軸の方向となるように、前記3次元解析対象データの格子群を転置し、
    転置された3次元解析対象データを前記演算装置に出力する、
    処理を実行することを特徴とする転置方法。
  6. 行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し3次元座標系に存在する格子状の3次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータが、
    前記3次元解析対象データについて、前記3次元座標系の第1軸の方向の格子の配列数、第2軸の方向の格子の配列数、および第3軸の方向の格子の配列数を検出し、
    検出された各配列数のうち最大配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも小さい場合、最大配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最大となる配列方向に対応する軸の方向となるように、前記3次元解析対象データの格子群を転置し、
    転置された3次元解析対象データを前記演算装置に出力する、
    処理を実行することを特徴とする転置方法。
  7. 行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し3次元座標系に存在する格子状の3次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータに、
    前記3次元解析対象データについて、前記3次元座標系の第1軸の方向の格子の配列数、第2軸の方向の格子の配列数、および第3軸の方向の格子の配列数を検出し、
    検出された各配列数のうち最小配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも大きい場合、最大配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向に対応する軸、および前記列方向に対応する軸のいずれとも異なる軸の方向となるように、前記3次元解析対象データの格子群を転置し、
    転置された3次元解析対象データを前記演算装置に出力する、
    処理を実行させることを特徴とする転置プログラム。
  8. 行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し3次元座標系に存在する格子状の3次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータに、
    前記3次元解析対象データについて、前記3次元座標系の第1軸の方向の格子の配列数、第2軸の方向の格子の配列数、および第3軸の方向の格子の配列数を検出し、
    検出された各配列数のうち最大配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも小さい場合、最大配列数になる前記3次元解析対象データの格子列の方向が、前記第1軸、前記第2軸および前記第3軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最大となる配列方向に対応する軸の方向となるように、前記3次元解析対象データの格子群を転置し、
    転置された3次元解析対象データを前記演算装置に出力する、
    処理を実行させることを特徴とする転置プログラム。
JP2012062285A 2012-03-19 2012-03-19 転置装置、転置方法、および転置プログラム Expired - Fee Related JP5853794B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012062285A JP5853794B2 (ja) 2012-03-19 2012-03-19 転置装置、転置方法、および転置プログラム
EP13150596.8A EP2642404A3 (en) 2012-03-19 2013-01-09 Transposing apparatus, method, and program
US13/750,117 US9424683B2 (en) 2012-03-19 2013-01-25 Transposing apparatus, transposing method, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012062285A JP5853794B2 (ja) 2012-03-19 2012-03-19 転置装置、転置方法、および転置プログラム

Publications (2)

Publication Number Publication Date
JP2013196323A JP2013196323A (ja) 2013-09-30
JP5853794B2 true JP5853794B2 (ja) 2016-02-09

Family

ID=47594516

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012062285A Expired - Fee Related JP5853794B2 (ja) 2012-03-19 2012-03-19 転置装置、転置方法、および転置プログラム

Country Status (3)

Country Link
US (1) US9424683B2 (ja)
EP (1) EP2642404A3 (ja)
JP (1) JP5853794B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605633B (zh) * 2013-09-22 2016-08-03 西安交通大学 一种粗网格大时间步时域有限差分方法
JP6544965B2 (ja) * 2015-03-31 2019-07-17 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
CN111144042B (zh) * 2019-12-09 2022-06-03 中山大学 片上时钟树电磁场仿真方法、***、装置和存储介质
US20230194636A1 (en) * 2020-04-20 2023-06-22 Bionaut Labs Ltd. Systems and methods for magnetic configuration optimization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06243113A (ja) * 1993-02-19 1994-09-02 Fujitsu Ltd 並列計算機における計算モデルのマッピング法
JP3860514B2 (ja) 2002-07-19 2006-12-20 ソニー株式会社 回路解析システム及びその解析方法
JP2005252009A (ja) 2004-03-04 2005-09-15 Renesas Technology Corp 粒子シミュレーション方法、プログラム及び粒子シミュレーション装置
US8117288B2 (en) * 2004-10-12 2012-02-14 International Business Machines Corporation Optimizing layout of an application on a massively parallel supercomputer
EP2116944A4 (en) 2006-12-28 2014-09-03 Fujitsu Ltd SIMULATION SYSTEM AND PROGRAM AND RECORDING MEDIUM FOR THE PROGRAM
US7979672B2 (en) * 2008-07-25 2011-07-12 International Business Machines Corporation Multi-core processors for 3D array transposition by logically retrieving in-place physically transposed sub-array data
JP5531420B2 (ja) 2009-02-27 2014-06-25 日本電気株式会社 プロセス割当システム、プロセス割当方法、プロセス割当プログラム
JP5577745B2 (ja) * 2010-02-25 2014-08-27 日本電気株式会社 クラスタシステム、プロセス配置方法、及びプログラム

Also Published As

Publication number Publication date
EP2642404A2 (en) 2013-09-25
EP2642404A3 (en) 2016-01-27
JP2013196323A (ja) 2013-09-30
US9424683B2 (en) 2016-08-23
US20130241924A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
JP5371221B2 (ja) 粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法
EP2656208B1 (en) Agile communication operator
JP5853794B2 (ja) 転置装置、転置方法、および転置プログラム
JP6601222B2 (ja) 行列演算プログラム、行列分割方法、及び並列処理装置
JP2015530636A (ja) 粒子流動のシミュレーションシステム及びその方法
Meister et al. Parallel memory-efficient adaptive mesh refinement on structured triangular meshes with billions of grid cells
JP7098793B2 (ja) 因果関係表示システム及び方法
Weber et al. Efficient parallel extraction of crack-free isosurfaces from adaptive mesh refinement (AMR) data
JP2017162326A (ja) 計算機、行列分解方法、及び行列分解プログラム
Brunhart-Lupo et al. Simulation exploration through immersive parallel planes
CN113850917B (zh) 三维模型体素化方法、装置、电子设备及存储介质
Zhang et al. Implementation of the system thermal-hydraulic code TRACE into SALOME platform for multi-scale coupling
JP2006285922A (ja) 設計支援装置および設計支援方法
EP3887953A1 (en) Parallel processor data processing system with reduced latency
Salleh et al. Computing for numerical methods using visual C++
CN110556169A (zh) 全堆芯子通道热工水力模拟的求解域划分方法
JP6942007B2 (ja) 画像処理装置、及びプログラム
Hamza et al. An explicit level-set approach for structural topology optimization
JP5910230B2 (ja) 設計支援プログラム、設計支援方法、および設計支援装置
Sigrist et al. Homogenisation method for the dynamic analysis of a complete nuclear steam generator with fluid–structure interaction
JP2017167581A (ja) 並列計算機、fft演算プログラムおよびfft演算方法
WO2020149919A1 (en) Inertial damping for enhanced simulation of elastic bodies
CN112052516B (zh) 基于序列摆放的组件布局随机采样方法
Jamroz et al. Asynchronous communication in spectral-element and discontinuous Galerkin methods for atmospheric dynamics–a case study using the High-Order Methods Modeling Environment (HOMME-homme_dg_branch)
Bauer et al. In Situ and Post-Processing Volume Rendering with Cinema

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151026

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151123

R150 Certificate of patent or registration of utility model

Ref document number: 5853794

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees