JP3764318B2 - Multi-dimensional fast Fourier transform parallel calculation method and apparatus, and recording medium on which calculation program is recorded - Google Patents

Multi-dimensional fast Fourier transform parallel calculation method and apparatus, and recording medium on which calculation program is recorded Download PDF

Info

Publication number
JP3764318B2
JP3764318B2 JP2000061128A JP2000061128A JP3764318B2 JP 3764318 B2 JP3764318 B2 JP 3764318B2 JP 2000061128 A JP2000061128 A JP 2000061128A JP 2000061128 A JP2000061128 A JP 2000061128A JP 3764318 B2 JP3764318 B2 JP 3764318B2
Authority
JP
Japan
Prior art keywords
calculation
fourier transform
dimensional
stage
result
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
JP2000061128A
Other languages
Japanese (ja)
Other versions
JP2001249917A (en
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2000061128A priority Critical patent/JP3764318B2/en
Publication of JP2001249917A publication Critical patent/JP2001249917A/en
Application granted granted Critical
Publication of JP3764318B2 publication Critical patent/JP3764318B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、例えば、コンピュータにより演算される多次元のデータに対する多次元高速フーリエ変換並列演算方法および装置ならびに演算プログラムを記録した記録媒体に関するものである。
【0002】
【従来の技術】
複数の演算手段を使用して、多次元フーリエ変換を並列処理する方式の例が、例えば、「水野政治、宮田裕行、二次元FFTの並列処理手法の検討、情報処理学会研究報告98-ARC-128 98-HPC-70,Vol.No.18,pp.13-18,1998」では、各演算手段に2つの演算結果送受信手段を設けて演算手段をリング型に接続し、それぞれの演算手段から時間的に同時に出力された演算結果を並列転送することにより、演算結果の転送による時間の短縮を行っている。
【0003】
また、例えば、「國枝博昭、伊藤和人、メッシュ結合マルチプロセッサシステムにおける2次元FFTアルゴリズム、電子情報通信学会論文誌A,Vol.J71-A,No.7,pp.1424-1431,1988」では、各演算手段に4つの演算結果送受信手段を設けて演算手段をメッシュ状に接続し、それぞれの演算手段から時間的に同時に出力された演算結果を並列転送することにより、演算結果の転送による時間の短縮を行っている。
【0004】
また、例えば、「丹野洲宣、武田利浩、堀口進、8隣接プロセッサ・アレイによる並列2−DFFTアルゴリズム、情報処理学会第44回(平成4年前期)全国大会講演論文集(1), pp.1-85-1-86,1985」では、各演算手段に8つの演算結果送受信手段を設けて演算手段をメッシュ状に接続し、それぞれの演算手段から時間的に同時に出力された演算結果を並列転送することにより、演算結果の転送による時間の短縮を行っている。
【0005】
【発明が解決しようとする課題】
しかしながら、上記の従来技術で書かれている方法では、1つの演算手段に対して複数の演算結果送受信手段が必要となるため、非常に多数の演算手段を用いた大規模な装置を作成する際に、演算結果を通信する通信線が膨大となり、事実上装置を構築することができなくなる、という欠点を持つ。
【0006】
また、上記の従来技術で書かれている方法での構成で装置が構築できたとしても、演算結果送受信手段と通信線が多数必要となるため、多くの費用がかかる、という欠点を持つ。
【0007】
また、上記の問題を解決するために、1つの演算手段に対して演算結果送受信手段を1つにして、例えばTCP/IPプロトコルを用いて仮想的にその1つの物理通信路上で複数の通信路を設けるような手法を採用した場合、上記の従来技術に書かれている方法では演算結果が時間的に同時に出力されるため、物理的な通信路の転送が輻湊し、転送時間が多く必要となる、という欠点を持つ。
【0008】
本発明は、上記課題に鑑みてなされたもので、通信路及び転送時間を増大させることなく多次元高速フーリエ変換並列演算をより簡易な構成で高速に演算処理することのできる多次元高速フーリエ変換並列演算方法および装置ならびに演算プログラムを記録した記録媒体を提供することを目的とする。
【0011】
【課題を解決するための手段】
前述した目的を達成するために、本発明は、1次元フーリエ変換を演算する複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された1次元フーリエ変換の演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有する多次元高速フーリエ変換並列演算装置が、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算することによって行う多次元高速フーリエ変換並列演算方法であって、前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、当該1次元データに含まれるエレメント数 d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d の演算ステージに分解され、前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられている場合に、0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算する手順を有し、前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、前記第d組目の1次元フーリエ変換を演算する手順のそれぞれが、前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信する手順と、第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信する手順と、前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積する手順とを含み、0以上D−2以下の全てのdについて、前記第d番目の1次元フーリエ変換を演算する手順において第N番目の演算ス テージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する手順において第1番目の演算ステージの組を割り当てられていることを要旨とする。
【0012】
すなわち本発明は、多次元高速フーリエ変換を並列に演算する方法であり、演算手段で演算した演算結果は演算結果送受信手段に送られ、演算結果交換手段を通して、別の演算結果送受信手段に送られ、さらにその演算結果送受信手段に接続している演算手段に送られること、多次元フーリエ変換を次元数分の1次元フーリエ変換を演算することにより行うこと、また各1次元フーリエ変換の演算アルゴリズムとしてCooley-Tukeyの手法を用いたときに、Cooley-Tukeyの手法では、1次元フーリエ変換を演算するために、1次元フーリエ変換するデータに含まれるエレメント数(データの要素数)の素因数の数に等しい数の演算ステージに分解して演算を行うが、その1つまたは複数の演算ステージを1つまたは複数の演算手段に割り当てること、多次元フーリエ変換を行うため複数の1次元フーリエ変換を演算する際には、まず、1つ目の1次元フーリエ変換の第1ステージの演算を行い、演算結果を次の第2ステージの演算を行う演算手段に演算結果を送り、それと同時に2つめの1次元フーリエ変換の第1ステージの演算を行うこと、演算ステージの中間段階では、m番目の1次元フーリエ変換の第nステージの演算を行い、演算結果を次の第n+1ステージの演算を行う演算手段に演算結果を送り、それと同時にm+1番目の1次元フーリエ変換の第nステージの演算を行うこと、演算ステージの最終段階では、最後の演算ステージを行う演算手段に全ての1次元フーリエ変換の演算結果を蓄積しておき、全ての1次元フーリエ変換の演算結果が算出された後に、その演算手段を用いて次の次元の1次元フーリエ変換の第1ステージを演算する。
【0013】
なおCooley-Tukeyの手法は、1次元フーリエ変換を行うアルゴリズムの1つであり、このアルゴリズムにより1次元フーリエ変換を高速化することが可能となる。
【0014】
これにより、ある次元の1次元フーリエ変換を行った後、次の次元の1次元フーリエ変換を行う際に、1つの演算手段内で、ある次元の1次元フーリエ変換の最終ステージと次の次元の1次元フーリエ変換の最初のステージを行うことから、演算手段間の演算結果の転送が不要となり、全体の処理時間が短縮できる。
【0015】
1次元フーリエ変換内の演算においては、演算ステージの演算と、演算ステージ間の演算結果の転送が同時に行えるフーリエ変換演算方法のため、演算時間または転送時間を隠ぺいすることができ、全体の処理時間が短縮できる。
【0016】
また、本発明は、1次元フーリエ変換を演算する複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された1次元フーリエ変換の演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有し、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算することによって行う多次元高速フーリエ変換並列演算装置であって、前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、当該1次元データに含まれるエレメント数N d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d 個の演算ステージに分解され、前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられており、0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算するように構成され、かつ、前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、前記第d組目の1次元フーリエ変換のそれぞれを演算する際に、前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積するように構成されており、0以上D−2以下の全てのdについて、前記第d番目の1次元フーリエ変換を演算する際に第N番目の演算ステージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する際に第1番目の演算ステージの組を割り当てられていることを要旨とする。
【0017】
これにより、本発明は1次元フーリエ変換内の演算においては、演算ステージの演算と、演算ステージ間の演算結果の転送が同時に行えるフーリエ変換演算方法のため、演算時間または転送時間を隠ぺいすることができ、全体の処理時間が短縮できる。
【0018】
また、本発明の多次元高速フーリエ変換並列演算装置は、1次元フーリエ変換を行う所定の演算アルゴリズムがCooley-Tukeyの手法であることを要旨とする。これにより、1次元フーリエ変換を行うアルゴリズムの1つであるCooley-Tukeyの手法を用いることになるので1次元フーリエ変換を高速化する。
【0021】
また、本発明は、複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有するコンピュータに、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算によって実行させる多次元高速フーリエ変換並列演算プログラムを記録した記録媒体であって、前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、当該1次元データに含まれるエレメント数 d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d の演算ステージに分解され、前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられている場合に、前記コンピュータに、0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算する処理を実行させ、前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、前記第d組目の1次元フーリエ変換を演算する処理のそれぞれが、前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信する処理と、第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信する処理と、前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積する処理とを含み、0以上D−2以下の全てのdについて、前記第d番目の1次元フーリエ変換を演算する処理において第N番目の演算ステージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する処理において第1番目の演算ステージの 組を割り当てられていることを要旨とする。
【0022】
これにより本発明にあっては、多次元高速フーリエ変換並列演算プログラムを記録媒体に記録しているため、該記録媒体を利用して、その多次元高速フーリエ変換並列演算プログラムの流通性を高めることができる。
【0023】
さらに、本発明の多次元高速フーリエ変換並列演算プログラムを記録したコンピュータ読み取り可能な記録媒体は、1次元フーリエ変換を行う所定の演算アルゴリズムがCooley-Tukeyの手法であることを要旨とする。
【0024】
これにより、1次元フーリエ変換を行うアルゴリズムの1つであるCooley-Tukeyの手法を用いることになるので1次元フーリエ変換を高速化する。
【0025】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態について説明する。
【0026】
図1は本発明の一実施の形態に係る多次元高速フーリエ変換並列演算方法が適用される多次元高速フーリエ変換並列演算装置の構成を示すブロック図である。同図に示す多次元高速フーリエ変換並列演算装置は、演算手段200,201,202,203、演算結果送受信手段210,211,212,213、演算結果交換手段220、演算結果を送受信するための通信路230,231,232,233により構成される。
【0027】
ここでは、演算手段200,201,202,203、演算結果送受信手段210,211,212,213、通信路230,231,232,233がそれぞれ4つずつ表記されているが、本実施形態は4つに限定されるものではなく、後述する図10に示すステージ数n以下であればよいものである。
【0028】
すなわち、図10に示すステージ0、〜、n−1の演算を演算手段200から203に割り当てることになる。例えば、n=8であるならば、ステージ0,1は演算手段200に、ステージ2,3は演算手段201に、ステージ4,5は演算手段202に、ステージ6,7は演算手段203に割り当てる。
【0029】
演算結果交換手段では通信路230,231,232,233は図2に示すような1方向にデータが流れるような接続を行う。ここで、300,301,302,303は前記演算手段200,201,202,203であり、310,311,312,313は前記演算結果送受信手段210,211,212,213であり、さらに330,331,332,333は演算結果を送受信するための前記通信路230,231,232,233である。
【0030】
以下、図2を参照して、1次元フーリエ変換の処理手順の一例を説明する。以下の説明では演算手段、演算結果送受信手段はそれぞれ4個とし、演算手段300ではステージ0、〜、n0 、演算手段301ではステージn0 +1、〜、n1 、演算手段302ではステージn1 +1、〜、n2 、演算手段303ではステージn2 +1、〜、n−1を行うものとする。また、演算手段300にはフーリエ変換すべきデータがロードされているものとする。
【0031】
なお、演算手段、演算結果送受信手段の数は上述したように4個に限定する必要はなく、ステージ数n以下であればよい。また、n,n0 ,n1 ,n2 ,・・・・は、1次元フーリエ変換に関する記号であり、nは全ステージ数、n0 ,n1 ,n2 ,・・・・はステージの番号を表す数字であり、0、〜、n−1の範囲にある。
【0032】
演算手段300では、ステージ0、〜、n0 の運算を行う。ステージn0 で算出された列方向1次元フーリエ変換は、演算結果送受信手段310、通信路330、演算結果送受信手段311を通して、演算手段301へ送られる。このとき、ステージn0 において列方向1次元フーリエ変換はC1 回行われるが、1回フーリエ変換が行われる毎に転送される。
【0033】
演算手段301では、ステージn0 +1、〜、n1 を行う。ステージn0 +1では、フーリエ係数を受信する毎に「ひねり係数」を乗ずる。ステージn1 で算出された列方向1次元フーリエ変換は、演算結果送受信手段311、通信路331、演算結果送受信手段312を通して、演算手段302へ送られる。このとき、ステージn1 において列方向1次元フーリエ変換はC2 回行われるが、1回フーリエ変換が行われる毎に転送される。
【0034】
演算手段302では、ステージn1 +1、〜、n2 を行う。ステージn1 +1では、フーリエ係数を受信する毎にひねり係数を乗ずる。ステージn2 で算出された列方向1次元フーリエ変換は、演算結果送受信手段312、通信路332、演算結果送受信手段313を通して、演算手段303へ送られる。このとき、ステージn2 において列方向1次元フーリエ変換はC3 回行われるが、1回フーリエ変換が行われる毎に転送される。
【0035】
演算手段303では、ステージn2 +1、〜、n−1を行う。ステージn2 +1では、フーリエ係数を受信する毎にひねり係数を乗ずる。これにより、ステージn−1で得られた行方向1次元フーリエ変換係数が、求める1次元フーリエ変換係数である。
【0036】
次に、上記の1次元フーリエ変換を用いて、エレメント数がN0 ×N1 ×…×ND-1 のD次元データをフーリエ変換してフーリエ変換係数を求める場合についての一実施の形態を示す。
【0037】
D次元データが互いに直交するX0 ,X1 ,…,XD-1 軸を用いて表されるとする。このとき、このD次元データのフーリエ変換は以下のように行う。
【0038】
ステップM1:データをX0 軸方向のN1 ×…×ND-1 個の1次元データ(X0 軸に平行な並びの1次元データ)に分割する。
【0039】
ステップM2:それぞれの1次元データをフーリエ変換し、フーリエ変換係数を算出する。
【0040】
ステップM3:算出したフーリエ変換係数を、X1 軸方向のN0 ×N2 ×…×ND-1 の1次元データ(X1 軸に平行な並びの1次元データ)に分割する。
【0041】
ステップM4:それぞれの1次元データをフーリエ変換し、フーリエ変換係数を算出する。
【0042】
ステップM5:X2 ,X3 ,…,XD-1 軸に関しても同様の操作を順次行う。最後のXD-1 軸に関して算出したフーリエ変換係数が求めるフーリエ変換係数である。
【0043】
例えば、16×16(=N0 ×N1 )の2(=D)次元データでは、図3に示すような操作を行う。まず、データをX0 軸方向の16個の1次元データ(X0 に平行な並びの1次元データ)に分割して、それぞれの1次元データをフーリエ変換し、フーリエ変換係数を算出する。
【0044】
次に、算出したフーリエ変換係数を、X1 軸方向の16個の1次元データ(X1 軸に平行な並びの1次元データ)に分割して、それぞれの1次元データをフーリエ変換し、フーリエ変換係数を算出する。X1 軸に関して算出したフーリエ変換係数が求めるフーリエ変換係数である。
【0045】
次に、多次元フーリエ変換の具体例を説明する。多次元フーリエ変換は後述するように複数の1次元フーリエ変換の実行により実現される。
【0046】
そこで、まず図4乃至図10を参照して、1次元フーリエ変換について述べ、その後、それを用いた多次元フーリエ変換についての実施の形態を述べる。
【0047】
なお、ここで図4乃至図9は、1次元データまたは1次元フーリエ変換係数における「ひねり係数」を2次元的に並べ直した様子を示し、j,kはそれらの図においては、縦方向と横方向の位置を示す。また、図4乃至図9においては、jは0、〜、P1 −1の整数、kは0、〜、C1 の整数である。
【0048】
これにより、データf、フーリエ変換係数hは、j,kで特定することができるようになる。例えば、データfがN0 個あった場合、データの添字は0、〜、N0 −1の整数になり、これが0,・・・j×C1 +k・・・N0-1 と表記できるようになる。また、ひねり係数のWの添字は、冪指数を表す。
【0049】
1次元フーリエ変換はCooley-Tukeyのアルゴリズムにより行う。エレメント数がN0 の1次元データfをフーリエ変換する場合のCooley-Tukeyのアルゴリズムによるフーリエ変換係数の算出方法を以下に示す。
【0050】
ステップS1:エレメント数N0 を素数P1 とC1 (=N0 /P1 )に分解する。
【0051】
ステップS2:このときN0 =P1 であれば、このデータをN0 (=P1 )点フーリエ変換する。そうでなければ、図4に示すように、データをC1 個ずつに分割し並べる。
【0052】
ステップS3:図5に示すように列方向について、それぞれP1 点1次元フーリエ変換する。そのフーリエ変換係数hを図6に示す。
【0053】
ステップS4:図6の各項にひねり係数Wjk=exp(−2πi×j×k)をかける。ただし、iは−1の平方根である。j,kは位置に応じた数値である。その結果を図7に示す。
【0054】
ステップS5:図8に示すように行方向について、それぞれC1 点1次元フーリエ変換係数を求めるが、このとき、図9に示すように、各行においてステップS1で示したN0 にC1 を置き換えてステップS1からステップS5を繰り返す。図9では素数P2 を用いてC2 =C1 /P2 とし、エレメント数がC2 になるような分割を行っている。最後に出力されたフーリエ変換係数が求めるフーリエ変換係数である。
【0055】
次に図10を参照して、上記算出手法を用いて、エレメント数N0 (=P1 2 …Pn-1 ;Pi ,i=0、〜、n−1は素数でありPi =Pj であってもよい)の1次元データをフーリエ変換するときの処理手順の一例を説明する。
【0056】
まず1次元データのエレメント数N0 を素数P1 とC1 (=N0 /P1 )に分解し、エレメント数C1 ずつのP1 個データにし、図10のように並べる。そして、列方向についてそれぞれP1 点1次元フーリエ変換する。フーリエ変換係数は図10内では点線で示されている。次に各エレメントにひねり係数を乗じる。
【0057】
その次に、C1 (=P1 2 …Pn-1 )は素数ではないので、各行についてエレメント数C1 (=P1 2 …Pn-1 )のデータ毎に以下の処理を行う。
【0058】
まず、1次元データのエレメント数C1 を素数P2 とC2 (=C1 /P2 )に分解し、エレメント数C2 ずつのP2 個データにし、図10のように並べる。そして、列方向についてそれぞれP2 点1次元フーリエ変換する。フーリエ変換係数は図10内では点線で示されている。次に各エレメントにひねり係数を乗じる。
【0059】
以下、同様の操作を繰り返し、データのエレメント数が素因数に分解できないCn-1 に達したときに、最下行に示すように、行方向のCn-1 点1次元フーリエ変換を行ってフーリエ変換係数を算出する。この最後に算出されたフーリエ変換係数が求めるフーリエ変換係数である。
【0060】
次に、図2を参照して、多次元高速フーリエ変換並列演算装置における、エレメント数がN0 ×N1 ×…×ND-1 のD次元データを多次元フーリエ変換する際の手順を説明する。
【0061】
ここでは、N0 の素因数の数はn0 であり、N1 ,…,ND-1 については同様にn1 個,…,nD-1 個であるとする。また、全ての次元についての1次元フーリエ変換は演算手段300または303から始まり、演算手段303または300で終了するものとする。なお、演算手段300にはフーリエ変換すべきデータがロードされているものとする。
【0062】
まず、X0 軸方向のN1 ×…×ND-1 個の1次元データ(X0 軸に平行な並びの1次元データ)に分割し、それぞれの1次元データを演算手段300,301,302,303の順でN0 点1次元フーリエ変換する。このとき、演算手段300ではステージ0、〜、n0,0 −1、演算手段301ではステージn0,0 、〜、n0,1 −1、演算手段302ではステージn0,1 、〜、n0,2 −1、演算手段303ではステージn0,2 、〜、n0 −1を行うものとする。
【0063】
なお、ここでn0 、n0,0 、n0,1 は、多次元(D>1)フーリエ変換に関する記号であり、n0 はX0 軸方向の1次元データをフーリエ変換する場合の全ステージ数であり、n0,0 、n0,1 はX0 軸方向の1次元データをフーリエ変換する場合のステージの番号を表す数字であり、0、〜、n0 −1の範囲にある。
【0064】
演算手段300では、1つ目の1次元データの1次元フーリエ変換のステージ0、〜、n0,0 −1を行い、これが終了して演算結果であるフーリエ変換係数を演算手段301へ送ると同時に、2つ目の1次元データの1次元フーリエ変換のステージ0、〜、n0,0 −1を行う。さらに、3、〜、N1 ×…×ND-1 個目の1次元データも同様にして次々と演算しながら301へ演算結果を送出する。
【0065】
演算手段301では、1つ目の1次元フーリエ変換係数を演算手段300から受け取り、ステージn0,0 、〜、n0,1 −1を行う。これが終了して演算結果であるフーリエ変換係数を演算手段302へ送る。これと平行して演算手段300から2つ目の1次元フーリエ変換係数を受け取り、1つ目のステージn0,0 、〜、n0,1 1の演算が終わり次第、2つ目のステージn0,0 、〜、n0,1 −1の演算を行う。3、〜、N1 ×…×ND-1 個目の1次元データも同様にして次々と演算しながら302へ演算結果を送出する。
【0066】
演算手段302では演算手段301と同様の操作をステージn0,1 、〜、n0,2 −1について行う。
【0067】
演算手段303では、1つ目の1次元フーリエ変換係数を演算手段302から受け取り、ステージn0,2 、〜、n0 −1を行う。1つ目の1次元フーリエ変換が終了後に、この演算結果を演算手段303に記憶しておく。2、〜、N1 ×…×ND-1 個目の1次元フーリエ変換についても、終了後は演算結果を演算手段303に記憶しておく。
【0068】
次に、X1 軸方向のN0 ×N2 ×…×ND-1 個の1次元データ(X1 軸に平行な並びの1次元データ)に分割し、それぞれの1次元データを演算手段303,302,301,300というX0 軸方向の場合とは逆の順序でN1 点1次元フーリエ変換する。このとき、データの流れは図2とは逆になる。なお、演算手段303ではステージ0、〜、n1,0 −1、演算手段302ではステージn1,0 、〜、n1,1 −1、演算手段301ではステージn1,1 、〜、n1,2 −1、演算手段300ではステージn1,2 、〜、n1 −1を行うものとする。
【0069】
この場合もX0 軸方向の1次元フーリエ変換した場合と同様に、最終的な演算結果である1次元フーリエ変換係数は、演算手段300に蓄積される。
【0070】
2 ,X3 ,…,XD-1 軸に関しても同様の操作を順次行う。最後のXD-1 軸に関して演算したフーリエ変換係数が求めるフーリエ変換係数であり、Dが奇数のときは演算手段303に、Dが偶数のときは演算手段300に蓄積される。
【0071】
図11、図12に分割処理、フーリエ変換処理、ひねり係数の乗算処理等を行う演算手順300,301,302,303内の演算処理時間と、演算結果送受信手段、演算結果交換手段、通信路による演算結果の通信時間の割り当てを示す。
【0072】
なお、図中、R1、R2、R3、R4は、それぞれ
R1;0、〜、n*,0 −1、
R2;n*,2 、〜、n* −1、
R3;n*,0 、〜、n*,1 −1、
R4;n*,1 、〜、n*,2 −1
である(但し、*は任意の数字を表す。以下、同様)。
【0073】
図11は1つの演算処理時間が1つの通信時間より長い場合の図であり、図12は1つの演算処理時間が1つの通信時間より短い場合の図である。縦軸は割り当てる項目を示し、演算手段内の処理と演算手段間の通信がある。横軸は経過時間を示す。
【0074】
図11、図12で使用しているフーリエ変換するデータの次元は奇数のものであり、この場合は最後のXD- 軸に関する処理が演算手段303内で行われるが、偶数であれば最後のXD- 軸に関する処理が演算手段300内で行われる。
【0075】
図11、図12では、まず、演算手段300において図10に示すステージ0、〜、n0,0 −1の1列目の処理をはじめ、処理が終了後、演算手段301へ演算結果を送出する。それと同時に2列目の処理を行う。図11、図12に示す1つの処理では、ステージ0では、列毎に1次元フーリエ変換を行うこと、ステージ1以上では列毎にひねり係数の乗算と1次元フーリエ変換を行う。
【0076】
ステージn0,0 以降も同様にして処理を進めていき、演算手段303において全ての演算処理がすむとX0 軸方向の1次元フーリエ変換が終了する。その後、X1 軸方向の1次元フーリエを行うために、変換後は演算手段303からステージ0、〜、n1,0 −1の処理をはじめる。以下、同様の操作を進め、XD-1 軸の1次元フーリエの実行終了後、全ての処理を終える。
【0077】
その効果としては、ある次元の1次元フーリエ変換を行った後、次の次元の1次元フーリエ変換を行う際に、1つの演算手段内で、ある次元の1次元フーリエ変換の最終ステージと次の次元の1次元フーリエ変換の最初のステージを行うことから、演算手段間の演算結果の転送が不要となり、演算結果の転送時間が短縮できることから、全体の処理時間が短縮できる。
【0078】
また、1次元フーリエ変換内の演算においては、演算ステージの演算と、演算ステージ間の演算結果の転送が同時に行えるフーリエ変換方法のため、演算時間または転送時間を隠ぺいすることができ、全体の処理時間が短縮できる。
【0079】
図11、図12において、黒色部分は全体の処理時間を計測する上で陽に現れる時間を表しており、1つの演算処理時間が1つの通信時間より長い場合では、図11で示すように、演算結果の転送時間が陽に現れるのは、1つの軸方向の1次元フーリエ変換当たり、3列分のみであり、その他の転送時間は演算にかかる時間で隠ぺいされる。
【0080】
また、1つの演算処理時間が1つの通信時間より短い場合では、図12で示すように、演算にかかる時間が陽に現れるのは、1つの軸方向の1次元フーリエ変換当たり、3列分のみであり、その他の演算にかかる時間は転送時間で隠ぺいされる。
【0081】
また、1回の演算結果転送において転送される演算結果の量は小さいことと、演算結果送受信手段に同時に送受信される演算結果は2つしかないことから、1つの演算手段に対する演算結果送受信手段は最大2つで最大の速度が得られる。また、図2に示すように、演算結果の流れは通信路により決まっており、各演算結果送受信手段で受信する口と転送する口が決まっていることから、全二重通信の機能がある演算結果送受信手段を使用する場合は、1つの演算手段に対する演算結果送受信手段は1つで最大の速度が得られる。
【0082】
このような多次元高速フーリエ変換並列演算は多次元高速フーリエ変換並列演算プログラムにより実現されるものであり、また該プログラムは記録媒体に記録して提供される。また該記録媒体を利用して、その多次元高速フーリエ変換並列演算プログラムの流通性を高めることができる。
【0083】
【発明の効果】
以上説明したように、1つの演算手段内で、ある次元の1次元フーリエ変換の最終ステージと次の次元の1次元フーリエ変換の最初のステージを行うことから、演算手段間の演算結果の転送が不要となり、演算結果の転送時間が短縮できることから、全体の処理時間が短縮できる。
【0084】
また、1次元フーリエ変換内の演算においては、演算ステージの演算と、演算ステージ間の演算結果の転送が同時に行えるフーリエ変換方法のため、演算時間または転送時間を隠ぺいすることができ、全体の処理時間が短縮できる。
【0085】
また、1回の演算結果転送において転送される演算結果の量は小さいことと、演算結果送受信手段に同時に送受信される演算結果は2つしかないことから、1つの演算手段に対する演算結果送受信手段は1つで十分である。
【0086】
また、演算結果の流れは通信路により決まっており、各演算結果送受信手段で受信する口と転送する口が決まっていることから、全二重通信の機能がある演算結果送受信手段を使用する場合は、1つの演算手段に対する演算結果送受信手段は1つで最大の速度が得られるという利点がある。
【図面の簡単な説明】
【図1】本発明に係る多次元高速フーリエ変換並列演算方法が適用される多次元高速フーリエ変換並列演算装置の一実施形態の概略の構成を示すブロック図である。
【図2】図1に示す一実施の形態におけるデータの流れを説明するための結線状態を示すブロック図である。
【図3】2次元フーリエ変換の処理手順を示す図である。
【図4】実施の形態におけるデータ分割を説明する図である。
【図5】実施の形態における列方向1次元フーリエ変換を説明する図である。
【図6】実施の形態における列方向1次元フーリエ変換係数を説明する図である。
【図7】実施の形態における列方向1次元フーリエ変換係数へのひねり係数の乗算を説明する図である。
【図8】実施の形態における行方向1次元フーリエ変換を説明する図である。
【図9】実施の形態における行のデータ分割を説明する図である。
【図10】実施の形態における1次元フーリエ変換処理の全体を示す図である。
【図11】1つの演算処理時間が1つの通信時間より長い場合の演算処理と通信の時間的割り当てを示す図である。
【図12】1つの演算処理時間が1つの通信時間より短い場合の演算処理と通信の時間的割り当てを示す図である。
【符号の説明】
200,201,202,203 演算手段
210,211,212,213 演算結果送受信手段
220 演算結果交換手段
230,231,232,233 通信路
300,301,302,303 演算手段
310,311,312,313 演算結果送受信手段
330,331,332 通信路
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a multidimensional fast Fourier transform parallel computation method and apparatus for multidimensional data computed by a computer, for example, and a recording medium on which a computation program is recorded.
[0002]
[Prior art]
Examples of methods for parallel processing of multi-dimensional Fourier transform using multiple arithmetic means are, for example, “Mizuno Politics, Hiroyuki Miyata, Examination of Parallel Processing Method of 2D FFT, IPSJ Research Report 98-ARC- 128 98-HPC-70, Vol.No.18, pp.13-18, 1998 ”, each calculation means is provided with two calculation result transmission / reception means, and the calculation means are connected in a ring shape. By parallelly transferring the calculation results output simultaneously in time, the time is shortened by transferring the calculation results.
[0003]
Also, for example, in “Hiroaki Kunieda, Kazuhito Ito, 2D FFT algorithm in mesh coupled multiprocessor system, IEICE Transactions A, Vol. J71-A, No. 7, pp. 1424-1431, 1988” Each calculation means is provided with four calculation result transmission / reception means, the calculation means are connected in a mesh shape, and the calculation results output simultaneously from the respective calculation means are transferred in parallel, so that the time required for transferring the calculation results is reduced. Has been shortened.
[0004]
Also, for example, “Nobu Tanno, Toshihiro Takeda, Susumu Horiguchi, Parallel 2-DFFT Algorithm with 8 Adjacent Processor Arrays, Proc. Of the 44th Annual Meeting of Information Processing Society of Japan (1), pp. In 1-85-1-86,1985, each calculation means is provided with eight calculation result transmission / reception means, the calculation means are connected in a mesh shape, and the calculation results simultaneously output from each calculation means in parallel are parallelized. By transferring, the time is shortened by transferring the calculation result.
[0005]
[Problems to be solved by the invention]
However, since the method described in the above prior art requires a plurality of calculation result transmission / reception means for one calculation means, when creating a large-scale apparatus using a very large number of calculation means. In addition, the communication line for communicating the calculation result becomes enormous, and it has a drawback that the device cannot be constructed in practice.
[0006]
Further, even if the apparatus can be constructed with the configuration described in the above-described prior art, a large number of calculation result transmission / reception means and communication lines are required, and thus there is a disadvantage that a lot of cost is required.
[0007]
Further, in order to solve the above-mentioned problem, a single calculation result transmission / reception unit is provided for one calculation unit, and a plurality of communication paths are virtually formed on the single physical communication path using, for example, the TCP / IP protocol. When the method described above is used, the method described in the above prior art outputs the calculation result simultaneously in time, so the transfer of the physical communication path is congested and the transfer time is long. It has the disadvantage of becoming.
[0008]
The present invention has been made in view of the above problems, and can perform multidimensional fast Fourier transform parallel processing at high speed with a simpler configuration without increasing the communication path and transfer time. It is an object of the present invention to provide a parallel operation method and apparatus and a recording medium on which an operation program is recorded.
[0011]
[Means for Solving the Problems]
  In order to achieve the aforementioned object, the present invention provides:A plurality of calculation means for calculating a one-dimensional Fourier transform and a calculation result of the one-dimensional Fourier transform calculated by any one of the plurality of calculation means are received, and another of the plurality of calculation means is received. A multidimensional fast Fourier transform parallel computing device having computation result exchanging means for transmitting to computing means is D (D is an integer of 2 or more).Multidimensional Fast Fourier Transform for dimensional dataBased on a predetermined calculation algorithm, a one-dimensional Fourier transform is performed on each of the D sets of one-dimensional data obtained by dividing the D-dimensional data into one-dimensional data in axial directions orthogonal to each other.Parallel operationTo doIs a multi-dimensional fast Fourier transform parallel computing method performed by, The calculation in the 1-D Fourier transform of the d-th (d is an integer not less than 0 and not more than D-1) set among the 1-D Fourier transforms for each of the D sets of one-dimensional data is the one-dimensionalNumber of elements included in the dataN d (N d Is an integer greater than or equal to 2)Number of prime factors ofN d (N d Is an integer of 2 or more) n d PiecesDecompose into the operation stageAnd said n d The first operation stage executed first among the operation stages is a process for dividing the one-dimensional data arranged in the row direction and a process for arranging the divided data in the column direction. And a process of performing one-dimensional Fourier transform on the data arranged in the row direction and the column direction in the column direction, the n d 2nd to n of the computation stages d -2nd to n-th executed first d The -1 operation stage is a process for multiplying one-dimensional data arranged in the row direction by a twist coefficient for each element of the one-dimensional data, a process for dividing the multiplied data, and a process for dividing the divided data. A process of arranging in the column direction, and a process of performing a one-dimensional Fourier transform on the data arranged in the row direction and the column direction in the column direction, the n d The nth executed last among the operation stages d The calculation stage includes a process of multiplying one-dimensional data arranged in the row direction by a twist coefficient for each element of the one-dimensional data and a process of performing a one-dimensional Fourier transform on the multiplied data in the row direction. , N d PiecesArithmetic stageAre N (N is 2 or more and n), each of which is composed of one or more operation stages that are sequentially and sequentially operated. d The following integer) groups of operation stages are grouped, and the N groups of operation stages areAssign to multiple computing meansThe first set of 1-D Fourier transforms of the d-th set for all d between 0 and D-1, and should be calculated in the 1-D Fourier transform of the d-th set. The number of one-dimensional data is M d M = 1, 2,..., M d −1, n = 1, 2,..., N−1, and the d-th setComputes one-dimensional Fourier transform ofIn each of the procedures, the calculation means to which the first set of calculation stages including the first calculation stage is assigned executes the first set of calculation stages for the mth one-dimensional data. , And the result is the m thCalculation resultAs a result, the second set of calculation stages is assigned through the calculation result exchanging means.For computing meansSendAt the same timeThe first set of calculation stages is executed for the (m + 1) th one-dimensional data, and the result is used as the (m + 1) th calculation result of the calculation means via the calculation result exchanging means. Send the stage set to the assigned computing meansProcedure andThe computing means to which the n-th computing stage set is assigned is the same as the n-th computing stage in response to the m-th computing result of the computing means to which the (n-1) -th computing stage set is assigned. Execute the set and return the result to the m-thCalculation resultAs a result, a set of the (n + 1) th arithmetic stage is assigned through the arithmetic result exchanging means.For computing meansSendAt the same timeFor the (m + 1) th calculation result of the calculation means to which the (n-1) th calculation stage set is assigned, the nth calculation stage set is executed, and the result is used as the (m + 1) th calculation result of the calculation means. As a result, the calculation result is exchanged via the calculation result exchange means to the calculation means to which the (n + 1) th calculation stage set is assigned.Procedure andSaid nth d The computing means assigned the N-th computing stage set including the computing stage is configured to output the N-th computing stage to the m-th computing result assigned to the (N-1) -th computing stage set. Run a set of math stages andAccumulate calculation resultsThe Nth calculation stage set is executed on the (m + 1) th calculation result of the calculation means to which the (N-1) th calculation stage set is assigned, and the calculation result is accumulated.And how toIn the procedure for calculating the d-th one-dimensional Fourier transform for all d including 0 to D-2, The computing means to which the set of the stage is assigned is assigned with the first set of computing stages in the procedure of calculating the (d + 1) th set of one-dimensional Fourier transform to be executed next.The gist.
[0012]
That is, the present invention is a method for calculating multidimensional Fast Fourier Transforms in parallel. The calculation result calculated by the calculation means is sent to the calculation result transmission / reception means, and sent to another calculation result transmission / reception means through the calculation result exchange means. Further, the calculation result is sent to the calculation means connected to the transmission / reception means, the multidimensional Fourier transform is performed by calculating the one-dimensional Fourier transform for the number of dimensions, and the calculation algorithm of each one-dimensional Fourier transform When using the Cooley-Tukey method, the Cooley-Tukey method calculates the number of prime factors of the number of elements (number of data elements) included in the data to be one-dimensional Fourier transformed to calculate the one-dimensional Fourier transform. An operation is performed by decomposing into an equal number of operation stages, and the one or more operation stages are assigned to one or more operation means, When calculating a plurality of one-dimensional Fourier transforms to perform the original Fourier transform, first, the first stage of the first one-dimensional Fourier transform is calculated, and the calculation result is calculated in the next second stage. The calculation result is sent to the calculation means, and at the same time, the first stage calculation of the second one-dimensional Fourier transform is performed. In the middle stage of the calculation stage, the m-th calculation of the first dimension Fourier transform is performed. The calculation result is sent to the calculation means for performing the calculation in the next (n + 1) th stage, and at the same time, the calculation in the (n + 1) th stage of the (m + 1) -th one-dimensional Fourier transform is performed. The calculation results of all the one-dimensional Fourier transforms are accumulated in the calculation means for performing the calculation, and after the calculation results of all the one-dimensional Fourier transforms are calculated, the calculation means are used. Te calculates the first stage of the one-dimensional Fourier transform of the next dimension.
[0013]
The Cooley-Tukey method is one of algorithms for performing a one-dimensional Fourier transform, and this algorithm can speed up the one-dimensional Fourier transform.
[0014]
Thus, after performing a one-dimensional Fourier transform of a certain dimension, when performing a one-dimensional Fourier transform of the next dimension, the final stage of the one-dimensional Fourier transform of a certain dimension and the next dimension are performed within one computing means. Since the first stage of the one-dimensional Fourier transform is performed, it is not necessary to transfer the calculation result between the calculation means, and the entire processing time can be shortened.
[0015]
In the calculation within the one-dimensional Fourier transform, the calculation time or transfer time can be concealed because of the Fourier transform calculation method in which the calculation of the calculation stage and the transfer of the calculation result between the calculation stages can be performed simultaneously. Can be shortened.
[0016]
  The present invention also provides:A plurality of calculation means for calculating a one-dimensional Fourier transform and a calculation result of the one-dimensional Fourier transform calculated by any one of the plurality of calculation means are received, and another of the plurality of calculation means is received. Calculation result exchange means for transmitting to the calculation means, and for D (D is an integer of 2 or more) dimension dataMultidimensional fast Fourier transformBased on a predetermined calculation algorithm, a one-dimensional Fourier transform is performed on each of the D sets of one-dimensional data obtained by dividing the D-dimensional data into one-dimensional data in axial directions orthogonal to each other.Parallel operationTo doA multi-dimensional fast Fourier transform parallel computing device performed byOf the one-dimensional Fourier transform for each of the D sets of one-dimensional data, the number of elements included in the one-dimensional Fourier transform of the d-th (d is an integer not less than 0 and not more than D-1) set N d (N d Is the number of prime factors of n) d (N d Is an integer of 2 or more) n d Is decomposed into operation stages, and the n d The first operation stage executed first among the operation stages is a process for dividing the one-dimensional data arranged in the row direction and a process for arranging the divided data in the column direction. And a process of performing one-dimensional Fourier transform on the data arranged in the row direction and the column direction in the column direction, the n d 2nd to n of the computation stages d -2nd to n-th executed first d The -1 operation stage is a process for multiplying one-dimensional data arranged in the row direction by a twist coefficient for each element of the one-dimensional data, a process for dividing the multiplied data, and a process for dividing the divided data. A process of arranging in the column direction, and a process of performing a one-dimensional Fourier transform on the data arranged in the row direction and the column direction in the column direction, the n d The nth executed last among the operation stages d The calculation stage includes a process of multiplying one-dimensional data arranged in the row direction by a twist coefficient for each element of the one-dimensional data and a process of performing a one-dimensional Fourier transform on the multiplied data in the row direction. , N d Each of the calculation stages is composed of one or more calculation stages that are successively calculated in succession, N (N is 2 or more and n d The following integers) are divided into sets of calculation stages, and the N sets of calculation stages are assigned to the plurality of calculation means, respectively, and for all d between 0 and D−1, It is configured to calculate the d-th set of one-dimensional Fourier transform, and the number of one-dimensional data to be calculated in the d-th set of one-dimensional Fourier transform is M d M = 1, 2,..., M d −1, n = 1, 2,..., N−1, when calculating each of the d-th set of one-dimensional Fourier transforms, the first calculation stage including the first calculation stage The calculation means to which the set is assigned executes the first set of calculation stages for the m-th one-dimensional data, and uses the result as the m-th calculation result of the calculation means. The second computing stage set is transmitted to the assigned computing means via the exchange means, and at the same time, the first computing stage set is executed for the (m + 1) th one-dimensional data, and the result is obtained. As the (m + 1) th calculation result of the calculation means, the calculation result exchange means is sent to the calculation means to which the second set of calculation stages is assigned, and the nth calculation stage set is assigned. The computing means is the first The nth calculation stage set is executed for the mth calculation result of the calculation means assigned the -1st calculation stage set, and the result is used as the mth calculation result of the calculation means. To the computing means to which the set of the (n + 1) th computing stage is assigned, and at the same time, the (m + 1) th computing means to which the set of the (n-1) th computing stage is assigned. The n + 1th operation stage set is executed on the operation result, and the result is used as the (m + 1) th operation result of the operation means, through the operation result exchanging means. Transmitted to the assigned computing means, and said nth d The computing means assigned the N-th computing stage set including the computing stage is configured to output the N-th computing stage to the m-th computing result assigned to the (N-1) -th computing stage set. The calculation stage group is executed, the calculation result is accumulated, and the Nth calculation stage set is calculated for the (m + 1) th calculation result of the calculation means to which the (N-1) th calculation stage set is assigned. And the result of the calculation is stored, and when calculating the d-th one-dimensional Fourier transform for all d between 0 and D-2, the N-th calculation stage The computing means to which the set is assigned is assigned the first set of computation stages when computing the (d + 1) th set of one-dimensional Fourier transforms to be executed next.This is the gist.
[0017]
Thereby, in the calculation within the one-dimensional Fourier transform, the present invention can conceal the calculation time or the transfer time because of the Fourier transform calculation method in which the calculation of the calculation stage and the transfer of the calculation result between the calculation stages can be performed simultaneously. And overall processing time can be shortened.
[0018]
The gist of the multi-dimensional fast Fourier transform parallel arithmetic apparatus of the present invention is that the predetermined arithmetic algorithm for performing the one-dimensional Fourier transform is the Cooley-Tukey method. As a result, the Cooley-Tukey method, which is one of the algorithms for performing the one-dimensional Fourier transform, is used, so that the one-dimensional Fourier transform is accelerated.
[0021]
  The present invention also provides:A plurality of calculation means and a calculation result exchanging means for receiving a calculation result calculated by any one of the plurality of calculation means and transmitting the result to another calculation means of the plurality of calculation means.On the computer, D (D is an integer of 2 or more)Multidimensional Fast Fourier Transform for dimensional dataBased on a predetermined calculation algorithm, a one-dimensional Fourier transform is performed on each of the D sets of one-dimensional data obtained by dividing the D-dimensional data into one-dimensional data in axial directions orthogonal to each other.By parallel operationExecuteA recording medium on which a multidimensional fast Fourier transform parallel operation program is recorded,Of the one-dimensional Fourier transforms for each of the D sets of one-dimensional data, the calculation in the first-dimensional Fourier transform of the d-th (d is an integer not less than 0 and not more than D-1) set is the one-dimensionalNumber of elements included in the dataN d (N d Is an integer greater than or equal to 2)Number of prime factors ofN d (N d Is an integer of 2 or more) n d PiecesDecompose into the operation stageAnd said n d The first operation stage executed first among the operation stages is a process for dividing the one-dimensional data arranged in the row direction and a process for arranging the divided data in the column direction. And a process of performing one-dimensional Fourier transform on the data arranged in the row direction and the column direction in the column direction, the n d 2nd to n of the computation stages d -2nd to n-th executed first d The -1 operation stage is a process for multiplying one-dimensional data arranged in the row direction by a twist coefficient for each element of the one-dimensional data, a process for dividing the multiplied data, and a process for dividing the divided data. A process of arranging in the column direction, and a process of performing a one-dimensional Fourier transform on the data arranged in the row direction and the column direction in the column direction, the n d The nth executed last among the operation stages d The calculation stage includes a process of multiplying one-dimensional data arranged in the row direction by a twist coefficient for each element of the one-dimensional data and a process of performing a one-dimensional Fourier transform on the multiplied data in the row direction. , N d PiecesArithmetic stageAre N (N is 2 or more and n), each of which is composed of one or more operation stages that are sequentially and sequentially operated. d The following integer) groups of operation stages are grouped, and the N groups of operation stages areAssign to multiple computing meansIf so, the computer is caused to execute a process for calculating the d-th set of one-dimensional Fourier transforms for all d of 0 to D-1, and the d-th set of one-dimensional Fourier transforms. The number of one-dimensional data to be calculated in d M = 1, 2,..., M d −1, n = 1, 2,..., N−1, and the d-th setComputes one-dimensional Fourier transform ofEach of the processing units, to which the first computing stage set including the first computing stage is assigned, executes the first computing stage set for the mth one-dimensional data. , And the result is the m thCalculation resultAs a result, the second set of calculation stages is assigned through the calculation result exchanging means.For computing meansSendAt the same timeThe first set of calculation stages is executed for the (m + 1) th one-dimensional data, and the result is used as the (m + 1) th calculation result of the calculation means via the calculation result exchanging means. Processing to send to a computing means to which a set of stages is assignedWhen,The computing means to which the n-th computing stage set is assigned is the same as the n-th computing stage in response to the m-th computing result of the computing means to which the (n-1) -th computing stage set is assigned. Execute the set and return the result to the m-thCalculation resultAs a result, a set of the (n + 1) th arithmetic stage is assigned through the arithmetic result exchanging means.For computing meansSendAt the same timeFor the (m + 1) th calculation result of the calculation means to which the (n-1) th calculation stage set is assigned, the nth calculation stage set is executed, and the result is used as the (m + 1) th calculation result of the calculation means. As a result, the process of transmitting to the arithmetic means to which the set of the (n + 1) th arithmetic stage is assigned via the arithmetic result exchanging meansWhen,Said nth d The computing means assigned the N-th computing stage set including the computing stage is configured to output the N-th computing stage to the m-th computing result assigned to the (N-1) -th computing stage set. Run a set of math stages andAccumulate calculation resultsA process of executing the set of the Nth calculation stage for the m + 1st calculation result of the calculation means assigned with the set of the (N-1) th calculation stage, and storing the calculation result. The calculation unit assigned the set of the Nth calculation stage in the process of calculating the d-th one-dimensional Fourier transform for all d between 0 and D-2 is the d + 1-th set to be executed next. In the process of computing the one-dimensional Fourier transform of the first computation stage Assigned a pairThis is the gist.
[0022]
As a result, in the present invention, the multidimensional fast Fourier transform parallel computation program is recorded on the recording medium, so that the multidimensional fast Fourier transform parallel computation program can be improved by using the recording medium. Can do.
[0023]
Further, the computer-readable recording medium on which the multidimensional fast Fourier transform parallel computation program of the present invention is recorded is characterized in that the predetermined computation algorithm for performing the one-dimensional Fourier transform is a Cooley-Tukey method.
[0024]
As a result, the Cooley-Tukey method, which is one of the algorithms for performing the one-dimensional Fourier transform, is used, so that the one-dimensional Fourier transform is accelerated.
[0025]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0026]
FIG. 1 is a block diagram showing a configuration of a multidimensional fast Fourier transform parallel computing device to which a multidimensional fast Fourier transform parallel computing method according to an embodiment of the present invention is applied. The multidimensional fast Fourier transform parallel computing device shown in the figure includes computing means 200, 201, 202, 203, computation result transmitting / receiving means 210, 211, 212, 213, computation result exchanging means 220, and communication for transmitting and receiving computation results. The paths 230, 231, 232, and 233 are configured.
[0027]
Here, four calculation means 200, 201, 202, 203, calculation result transmission / reception means 210, 211, 212, 213, and four communication paths 230, 231, 232, 233 are shown, respectively. However, the number of stages is not more than n as shown in FIG.
[0028]
That is, the operations of stages 0 to n-1 shown in FIG. For example, if n = 8, stages 0 and 1 are assigned to computing means 200, stages 2 and 3 are assigned to computing means 201, stages 4 and 5 are assigned to computing means 202, and stages 6 and 7 are assigned to computing means 203. .
[0029]
In the calculation result exchanging means, the communication paths 230, 231, 232, 233 are connected so that data flows in one direction as shown in FIG. Here, 300, 301, 302, 303 are the arithmetic means 200, 201, 202, 203, 310, 311, 312, 313 are the arithmetic result transmitting / receiving means 210, 211, 212, 213, and 330, 331, 332, and 333 are the communication paths 230, 231, 232, and 233 for transmitting and receiving calculation results.
[0030]
Hereinafter, an example of the processing procedure of the one-dimensional Fourier transform will be described with reference to FIG. In the following description, there are four calculation means and calculation result transmission / reception means, and the calculation means 300 uses stages 0 to n.0In the calculation means 301, stage n0+1 to n1In the calculation means 302, the stage n1+1 to n2In the calculation means 303, stage n2+1,..., N-1 are performed. Further, it is assumed that the calculation means 300 is loaded with data to be Fourier transformed.
[0031]
Note that the number of calculation means and calculation result transmission / reception means need not be limited to four as described above, and may be no more than n stages. N, n0, N1, N2,... Are symbols related to one-dimensional Fourier transform, n is the total number of stages, n0, N1, N2,... Are numbers representing stage numbers and are in the range of 0,.
[0032]
In the calculation means 300, stages 0 to n0Do the calculation. Stage n0The one-dimensional Fourier transform in the column direction calculated in (1) is sent to the calculation means 301 through the calculation result transmission / reception means 310, the communication path 330, and the calculation result transmission / reception means 311. At this time, stage n0Column direction one-dimensional Fourier transform is C1Although it is performed once, it is transferred every time a Fourier transform is performed.
[0033]
In calculation means 301, stage n0+1 to n1I do. Stage n0At +1, every time a Fourier coefficient is received, a “twist coefficient” is multiplied. Stage n1The one-dimensional Fourier transform in the column direction calculated in (1) is sent to the calculation means 302 through the calculation result transmission / reception means 311, the communication path 331, and the calculation result transmission / reception means 312. At this time, stage n1Column direction one-dimensional Fourier transform is C2Although it is performed once, it is transferred every time a Fourier transform is performed.
[0034]
In calculation means 302, stage n1+1 to n2I do. Stage n1At +1, every time a Fourier coefficient is received, it is multiplied by a twist coefficient. Stage n2The one-dimensional Fourier transform in the column direction calculated in the above is sent to the calculation means 303 through the calculation result transmission / reception means 312, the communication path 332, and the calculation result transmission / reception means 313. At this time, stage n2Column direction one-dimensional Fourier transform is CThreeAlthough it is performed once, it is transferred every time a Fourier transform is performed.
[0035]
In calculation means 303, stage n2+1,..., N-1. Stage n2At +1, every time a Fourier coefficient is received, it is multiplied by a twist coefficient. Thereby, the one-dimensional Fourier transform coefficient in the row direction obtained at stage n-1 is the one-dimensional Fourier transform coefficient to be obtained.
[0036]
Next, using the above one-dimensional Fourier transform, the number of elements is N0× N1× ... × ND-1An embodiment of a case where Fourier transform coefficients are obtained by Fourier transforming the D-dimensional data is shown.
[0037]
X in which D-dimensional data are orthogonal to each other0, X1, ..., XD-1Suppose that they are expressed using axes. At this time, the Fourier transform of the D-dimensional data is performed as follows.
[0038]
Step M1: Data is X0N in the axial direction1× ... × ND-1Pieces of one-dimensional data (X0(One-dimensional data arranged in parallel to the axis).
[0039]
Step M2: Fourier transform is performed on each one-dimensional data to calculate a Fourier transform coefficient.
[0040]
Step M3: The calculated Fourier transform coefficient is changed to X1N in the axial direction0× N2× ... × ND-1One-dimensional data (X1(One-dimensional data arranged in parallel to the axis).
[0041]
Step M4: Fourier transform is performed on each one-dimensional data to calculate a Fourier transform coefficient.
[0042]
Step M5: X2, XThree, ..., XD-1The same operation is sequentially performed on the shaft. Last XD-1This is the Fourier transform coefficient obtained by the Fourier transform coefficient calculated for the axis.
[0043]
For example, 16 × 16 (= N0× N13), the operation shown in FIG. 3 is performed. First, the data is X016 one-dimensional data in the axial direction (X01-dimensional data arranged in parallel with each other), each of the one-dimensional data is subjected to Fourier transform, and a Fourier transform coefficient is calculated.
[0044]
Next, the calculated Fourier transform coefficient is X116 one-dimensional data in the axial direction (X11-dimensional data arranged in parallel with the axis), each of the one-dimensional data is Fourier transformed, and a Fourier transform coefficient is calculated. X1This is the Fourier transform coefficient obtained by the Fourier transform coefficient calculated for the axis.
[0045]
Next, a specific example of multidimensional Fourier transform will be described. The multidimensional Fourier transform is realized by executing a plurality of one-dimensional Fourier transforms as will be described later.
[0046]
Therefore, first, a one-dimensional Fourier transform will be described with reference to FIGS. 4 to 10, and then an embodiment of a multidimensional Fourier transform using the one-dimensional Fourier transform will be described.
[0047]
Here, FIGS. 4 to 9 show a state in which “twist coefficients” in one-dimensional data or one-dimensional Fourier transform coefficients are rearranged two-dimensionally, and j and k are the vertical direction in these drawings. Indicates the horizontal position. 4 to 9, j is 0,.1-1 integer, k is 0, ~, C1Is an integer.
[0048]
Thereby, the data f and the Fourier transform coefficient h can be specified by j and k. For example, data f is N0If there are, the data subscripts are 0, ~, N0−1, which is 0,... J × C1+ K ... N0-1Can be written. In addition, the subscript of W of the twist coefficient represents the power index.
[0049]
One-dimensional Fourier transform is performed by the Cooley-Tukey algorithm. Number of elements is N0The Fourier transform coefficient calculation method using the Cooley-Tukey algorithm when the one-dimensional data f is Fourier-transformed is shown below.
[0050]
Step S1: Number of elements N0Is a prime number P1And C1(= N0/ P1).
[0051]
Step S2: At this time N0= P1Then this data is N0(= P1) Point Fourier transform. Otherwise, as shown in FIG.1Divide the pieces into pieces.
[0052]
Step S3: As shown in FIG.1Point one-dimensional Fourier transform. The Fourier transform coefficient h is shown in FIG.
[0053]
Step S4: Twist coefficient W for each term in FIG.jk= Exp (-2πi × j × k). However, i is the square root of -1. j and k are numerical values corresponding to the positions. The result is shown in FIG.
[0054]
Step S5: As shown in FIG.1A point one-dimensional Fourier transform coefficient is obtained. At this time, as shown in FIG.0To C1And step S1 to step S5 are repeated. In FIG. 9, the prime number P2Using C2= C1/ P2And the number of elements is C2The division is done. This is the Fourier transform coefficient obtained by the last output Fourier transform coefficient.
[0055]
Next, referring to FIG. 10, using the above calculation method, the number of elements N0(= P1P2... Pn-1; Pi, I = 0,..., N-1 is a prime number and Pi= PjAn example of a processing procedure when Fourier transforming the one-dimensional data may be described.
[0056]
First, the number N of one-dimensional data elements0Is a prime number P1And C1(= N0/ P1) And the number of elements C1Each P1Individual data is arranged as shown in FIG. And P for each column direction1Point one-dimensional Fourier transform. The Fourier transform coefficients are indicated by dotted lines in FIG. Each element is then multiplied by a twist factor.
[0057]
Next, C1(= P1P2... Pn-1) Is not a prime number, so the number of elements C for each row1(= P1P2... Pn-1) The following processing is performed for each data.
[0058]
First, the number of elements C of one-dimensional data1Is a prime number P2And C2(= C1/ P2) And the number of elements C2Each P2Individual data is arranged as shown in FIG. And P for each column direction2Point one-dimensional Fourier transform. The Fourier transform coefficients are indicated by dotted lines in FIG. Each element is then multiplied by a twist factor.
[0059]
Thereafter, the same operation is repeated, and the number of data elements cannot be decomposed into prime factors.n-1, The row direction C as shown in the bottom rown-1A point one-dimensional Fourier transform is performed to calculate a Fourier transform coefficient. This last Fourier transform coefficient is a Fourier transform coefficient to be obtained.
[0060]
Next, referring to FIG. 2, the number of elements in the multi-dimensional fast Fourier transform parallel computing device is N0× N1× ... × ND-1A procedure for performing multidimensional Fourier transform on the D-dimensional data will be described.
[0061]
Here, N0The number of prime factors of is n0And N1, ..., ND-1Similarly for n1Pieces, ..., nD-1Suppose that it is a piece. Further, the one-dimensional Fourier transform for all dimensions starts from the calculation means 300 or 303 and ends at the calculation means 303 or 300. It is assumed that the calculation means 300 is loaded with data to be Fourier transformed.
[0062]
First, X0N in the axial direction1× ... × ND-1Pieces of one-dimensional data (X01-dimensional data arranged in parallel with the axis), and each of the one-dimensional data is N in the order of the arithmetic means 300, 301, 302, 303.0Point one-dimensional Fourier transform. At this time, in the calculation means 300, stages 0 to n0,0−1, in the calculation means 301, the stage n0,0, ~, N0,1−1, stage n in the calculation means 3020,1, ~, N0,2−1, stage n in the calculation means 3030,2, ~, N0-1 shall be performed.
[0063]
Where n0, N0,0, N0,1Is a symbol for multidimensional (D> 1) Fourier transform, n0Is X0The total number of stages when Fourier transform is performed on one-dimensional data in the axial direction, and n0,0, N0,1Is X0This is a number representing the stage number when Fourier transform is performed on one-dimensional data in the axial direction, and 0, ..., n0−1.
[0064]
In the arithmetic means 300, stages 0 to n of the one-dimensional Fourier transform of the first one-dimensional data0,0-1 is completed, and the Fourier transform coefficient which is the computation result is sent to the computing means 301. At the same time, the stage 0,..., N of the one-dimensional Fourier transform of the second one-dimensional data0,0-1. 3 to N1× ... × ND-1Similarly, the calculation result is sent to 301 while sequentially calculating the first one-dimensional data.
[0065]
The computing means 301 receives the first one-dimensional Fourier transform coefficient from the computing means 300 and receives the stage n0,0, ~, N0,1-1. When this is finished, a Fourier transform coefficient as a calculation result is sent to the calculation means 302. In parallel with this, the second one-dimensional Fourier transform coefficient is received from the calculation means 300, and the first stage n0,0, ~, N0,1As soon as the operation of 1 is finished, the second stage n0,0, ~, N0,1-1 operation is performed. 3, ..., N1× ... × ND-1The calculation result is sent to 302 while calculating the first one-dimensional data one after another in the same manner.
[0066]
The calculation means 302 performs the same operation as the calculation means 301 on stage n.0,1, ~, N0,2-1.
[0067]
The computing means 303 receives the first one-dimensional Fourier transform coefficient from the computing means 302 and receives the stage n0,2, ~, N0-1. After the first one-dimensional Fourier transform is completed, the calculation result is stored in the calculation means 303. 2, N1× ... × ND-1Also for the first one-dimensional Fourier transform, the calculation result is stored in the calculation means 303 after completion.
[0068]
Next, X1N in the axial direction0× N2× ... × ND-1Pieces of one-dimensional data (X11-dimensional data arranged in parallel to the axis), and each of the one-dimensional data is called calculation means 303, 302, 301, 300.0N in the reverse order to the axial direction1Point one-dimensional Fourier transform. At this time, the data flow is opposite to that shown in FIG. Note that in the calculation means 303, stages 0 to n1,0−1, stage n in the calculation means 3021,0, ~, N1,1−1, in the calculation means 301, the stage n1,1, ~, N1,2−1, stage n in the arithmetic means 3001,2, ~, N1-1 shall be performed.
[0069]
Again X0As in the case of the one-dimensional Fourier transform in the axial direction, the one-dimensional Fourier transform coefficient that is the final calculation result is stored in the calculation means 300.
[0070]
X2, XThree, ..., XD-1The same operation is sequentially performed on the shaft. Last XD-1The Fourier transform coefficient calculated for the axis is a Fourier transform coefficient to be obtained. When D is an odd number, it is stored in the calculation means 303, and when D is an even number, it is stored in the calculation means 300.
[0071]
11 and 12, calculation processing times in calculation procedures 300, 301, 302, and 303 for performing division processing, Fourier transform processing, twist coefficient multiplication processing, etc., calculation result transmission / reception means, calculation result exchange means, and communication path Shows the allocation of communication time for calculation results.
[0072]
In the figure, R1, R2, R3 and R4 are respectively
R1; 0, ..., n*, 0-1,
R2; n*, 2, ~, N*-1,
R3; n*, 0, ~, N*, 1-1,
R4; n*, 1, ~, N*, 2-1
(However, * represents an arbitrary number. The same applies hereinafter.)
[0073]
FIG. 11 is a diagram when one computation processing time is longer than one communication time, and FIG. 12 is a diagram when one computation processing time is shorter than one communication time. The vertical axis indicates the items to be assigned, and there is processing within the calculation means and communication between the calculation means. The horizontal axis shows the elapsed time.
[0074]
The dimension of the data to be Fourier transformed used in FIGS. 11 and 12 is an odd number. In this case, the last XD- 1Processing related to the axis is performed in the calculation means 303. If it is an even number, the last XD- 1A process related to the axis is performed in the calculation means 300.
[0075]
11 and 12, first, the stage 0,..., N shown in FIG.0,0The calculation result is sent to the calculation means 301 after the process is completed, including the process in the first column of -1. At the same time, the second column is processed. In one process shown in FIGS. 11 and 12, in stage 0, a one-dimensional Fourier transform is performed for each column, and in stage 1 and higher, a multiplication of a twist coefficient and a one-dimensional Fourier transform are performed for each column.
[0076]
Stage n0,0Thereafter, the processing proceeds in the same manner, and when all the arithmetic processing is completed in the arithmetic means 303, X0The one-dimensional Fourier transform in the axial direction ends. Then X1In order to perform one-dimensional Fourier in the axial direction, after the transformation, the stage 0,.1,0The process of -1 is started. In the following, proceed with the same operation, XD-1After the execution of the one-dimensional Fourier of the axis, all processing is finished.
[0077]
The effect is that after performing a one-dimensional Fourier transform of a certain dimension and then performing a one-dimensional Fourier transform of the next dimension, the final stage of the one-dimensional Fourier transform of a certain dimension and the next Since the first stage of the one-dimensional Fourier transform is performed, it is not necessary to transfer the calculation result between the calculation means, and the transfer time of the calculation result can be shortened, so that the entire processing time can be shortened.
[0078]
In addition, in the computation within the one-dimensional Fourier transform, the computation time or transfer time can be concealed because of the Fourier transform method in which computation at the computation stage and computation result transfer between the computation stages can be performed simultaneously. Time can be shortened.
[0079]
11 and 12, the black portion represents the time that appears explicitly in measuring the entire processing time. When one arithmetic processing time is longer than one communication time, as shown in FIG. 11, The transfer time of the calculation result explicitly appears only for three columns per one-dimensional Fourier transform in one axial direction, and the other transfer time is hidden by the time required for the calculation.
[0080]
Further, when one computation processing time is shorter than one communication time, as shown in FIG. 12, the time required for computation appears explicitly only for three columns per one-dimensional Fourier transform in one axial direction. The time required for other operations is hidden by the transfer time.
[0081]
In addition, since the amount of calculation results transferred in one calculation result transfer is small and there are only two calculation results transmitted / received simultaneously to the calculation result transmission / reception means, the calculation result transmission / reception means for one calculation means is Maximum speed is obtained with a maximum of two. In addition, as shown in FIG. 2, the flow of calculation results is determined by the communication channel, and the calculation result transmission / reception means has a reception port and a transfer port. When the result transmitting / receiving means is used, the maximum speed can be obtained with one calculation result transmitting / receiving means for one calculating means.
[0082]
Such a multidimensional fast Fourier transform parallel operation is realized by a multidimensional fast Fourier transform parallel operation program, and the program is provided by being recorded on a recording medium. In addition, by using the recording medium, it is possible to improve the circulation of the multidimensional fast Fourier transform parallel operation program.
[0083]
【The invention's effect】
As described above, since the final stage of the one-dimensional Fourier transform of one dimension and the first stage of the one-dimensional Fourier transform of the next dimension are performed in one arithmetic means, the calculation result is transferred between the arithmetic means. Since it becomes unnecessary and the transfer time of the calculation result can be shortened, the entire processing time can be shortened.
[0084]
In addition, in the computation within the one-dimensional Fourier transform, the computation time or transfer time can be concealed because of the Fourier transform method in which computation at the computation stage and computation result transfer between the computation stages can be performed simultaneously. Time can be shortened.
[0085]
In addition, since the amount of calculation results transferred in one calculation result transfer is small and there are only two calculation results transmitted / received simultaneously to the calculation result transmission / reception means, the calculation result transmission / reception means for one calculation means is One is enough.
[0086]
In addition, the flow of calculation results is determined by the communication channel, and the calculation reception unit that has a full-duplex communication function is used because the reception port and the transfer port are determined by each calculation result transmission / reception unit. Has the advantage that the maximum speed can be obtained with a single computation result transmitting / receiving means for one computing means.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a schematic configuration of an embodiment of a multidimensional fast Fourier transform parallel computing device to which a multidimensional fast Fourier transform parallel computing method according to the present invention is applied.
2 is a block diagram showing a connection state for explaining a data flow in the embodiment shown in FIG. 1; FIG.
FIG. 3 is a diagram illustrating a processing procedure of a two-dimensional Fourier transform.
FIG. 4 is a diagram for explaining data division in the embodiment;
FIG. 5 is a diagram illustrating column-direction one-dimensional Fourier transform in the embodiment.
FIG. 6 is a diagram illustrating a column direction one-dimensional Fourier transform coefficient in the embodiment.
FIG. 7 is a diagram for explaining multiplication of a one-dimensional Fourier transform coefficient in the column direction by a twist coefficient in the embodiment.
FIG. 8 is a diagram illustrating row direction one-dimensional Fourier transform in the embodiment.
FIG. 9 is a diagram illustrating row data division according to the embodiment.
FIG. 10 is a diagram illustrating an entire one-dimensional Fourier transform process in the embodiment.
FIG. 11 is a diagram showing time allocation for arithmetic processing and communication when one arithmetic processing time is longer than one communication time.
FIG. 12 is a diagram showing time allocation for arithmetic processing and communication when one arithmetic processing time is shorter than one communication time.
[Explanation of symbols]
200, 201, 202, 203 Calculation means
210, 211, 212, 213 Calculation result transmitting / receiving means
220 Calculation result exchange means
230, 231, 232, 233 communication path
300, 301, 302, 303 Calculation means
310, 311, 312, 313 Calculation result transmitting / receiving means
330,331,332 communication path

Claims (6)

1次元フーリエ変換を演算する複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された1次元フーリエ変換の演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有する多次元高速フーリエ変換並列演算装置が、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算することによって行う多次元高速フーリエ変換並列演算方法であって
前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、当該1次元データに含まれるエレメント数 d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d の演算ステージに分解され、
前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、
前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられている場合に、
0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算する手順を有し、
前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、
前記第d組目の1次元フーリエ変換を演算する手順のそれぞれが、
前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信する手順と、
第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信する手順と、
前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に 対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積する手順とを含み、
0以上D−2以下の全てのdについて、
前記第d番目の1次元フーリエ変換を演算する手順において第N番目の演算ステージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する手順において第1番目の演算ステージの組を割り当てられている
ことを特徴とする多次元高速フーリエ変換並列演算方法。
A plurality of calculation means for calculating a one-dimensional Fourier transform and a calculation result of the one-dimensional Fourier transform calculated by any one of the plurality of calculation means are received, and another of the plurality of calculation means is received. A multidimensional fast Fourier transform parallel computing device having a computation result exchanging means for transmitting to a computing means performs a multidimensional fast Fourier transform on D (D is an integer of 2 or more) dimension data , and the D dimension data are orthogonal to each other. a one-dimensional Fourier transform with respect to one-dimensional data, respectively in the axial direction of one-dimensional data D sets obtained by dividing the to a multi-dimensional fast Fourier transform parallel operation method performed by a parallel computation based on a predetermined calculation algorithm,
Of the one-dimensional Fourier transform for each of the D sets of one-dimensional data, the number of elements included in the one-dimensional Fourier transform of the d-th (d is an integer of 0 to D-1) set n d (n d is an integer of 2 or more) is decomposed the number of prime factors of the n d (n d is an integer of 2 or more) n d pieces of operation stage as,
The first operation stage executed first among the n d operation stages is a process of dividing the one-dimensional data with respect to the one-dimensional data arranged in the row direction, and the divided data in the column direction. And a process of performing a one-dimensional Fourier transform on the data arranged in the row direction and the column direction in the column direction,
Wherein n d pieces of the second through n second through n d -1 operation stage is performed -1st d of calculation stages, for one-dimensional data arranged in the row direction, the one-dimensional data A process for multiplying each element by a twist coefficient, a process for dividing the multiplied data, a process for arranging the divided data in the column direction, and a one-dimensional data in the row direction and the column direction. Including Fourier transform processing,
The n d operation stage to be executed last among the n d pieces of operation stages, for one-dimensional data arranged in the row direction, a process of multiplying the twiddle factor to each element of said one-dimensional data, A process of performing a one-dimensional Fourier transform on the multiplied data in the row direction,
Wherein n d pieces of operation stages, is set to grouping of one or more calculation stages consisting N (N is 2 or more n d an integer) sets of operation stage sequentially calculating each continuous,
When the N sets of calculation stages are respectively assigned to the plurality of calculation means ,
A procedure for calculating the d-th set of one-dimensional Fourier transform for all d of 0 or more and D-1 or less;
The number of one-dimensional data to be calculated in the d-th set of one-dimensional Fourier transform is M d, and m = 1, 2,..., M d −1, n = 1, 2,. -1,
Each of the procedures for calculating the d-th set of one-dimensional Fourier transforms includes:
The calculation means assigned the first set of calculation stages including the first calculation stage executes the first set of calculation stages for the m-th one-dimensional data, and the result is The mth calculation result of the calculation means is transmitted to the calculation means assigned with the second set of calculation stages via the calculation result exchange means, and at the same time, the m + 1th one-dimensional data is sent to the m + 1th one-dimensional data. The first set of calculation stages is executed, and the result is transmitted as the (m + 1) th calculation result of the calculation means to the calculation means to which the second set of calculation stages is assigned via the calculation result exchange means. And the steps to
The computing means to which the n-th computing stage set is assigned is the same as the n-th computing stage in response to the m-th computing result of the computing means to which the (n-1) -th computing stage set is assigned. The set is executed, and the result is transmitted as the mth calculation result of the calculation means to the calculation means to which the set of the (n + 1) th calculation stage is assigned via the calculation result exchange means, and at the same time, the nth The (n + 1) th operation stage set is executed on the (m + 1) th operation result of the operation means assigned the -1st operation stage set, and the result is used as the (m + 1) th operation result of the operation means. , A procedure for transmitting to the arithmetic means to which the set of the (n + 1) th arithmetic stage is assigned via the arithmetic result exchanging means ;
Wherein said n d N-th computing means assigned a set of arithmetic stage includes an operational stage, against the m-th calculation result of the operation means that are assigned a set of the N-1 th operation stage, The set of the Nth calculation stage is executed, the calculation result is accumulated, and the Nth calculation result is calculated for the (m + 1) th calculation result of the calculation means assigned with the (N-1) th calculation stage set. Including a procedure for executing a set of calculation stages and accumulating the calculation results ,
For all d from 0 to D-2,
In the procedure for calculating the d-th one-dimensional Fourier transform, the calculation means assigned the set of the N-th calculation stage in the procedure for calculating the d + 1-th set of one-dimensional Fourier transform to be executed next A multi-dimensional fast Fourier transform parallel computation method, characterized in that a set of the second computation stage is assigned .
前記1次元フーリエ変換を行う所定の演算アルゴリズムがCooley-Tukeyの手法であることを特徴とする請求項記載の多次元高速フーリエ変換並列演算方法。Multidimensional fast Fourier transform parallel operation method of claim 1, wherein the predetermined calculation algorithm for the one-dimensional Fourier transform is characterized in that it is a technique of Cooley-Tukey. 1次元フーリエ変換を演算する複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された1次元フーリエ変換の演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有し、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算することによって行う多次元高速フーリエ変換並列演算装置であって、
前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、
当該1次元データに含まれるエレメント数N d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d 個の演算ステージに分解され、
前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、
前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられており、
0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算するように構成され、かつ、
前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、
前記第d組目の1次元フーリエ変換のそれぞれを演算する際に、
前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、
第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステ ージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、
前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積するように構成されており、
0以上D−2以下の全てのdについて、
前記第d番目の1次元フーリエ変換を演算する際に第N番目の演算ステージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する際に第1番目の演算ステージの組を割り当てられている
ことを特徴とする多次元高速フーリエ変換並列演算装置。
A plurality of calculation means for calculating a one-dimensional Fourier transform and a calculation result of the one-dimensional Fourier transform calculated by any one of the plurality of calculation means are received, and another of the plurality of calculation means is received. Calculation result exchanging means for transmitting to the calculation means, and performing multi-dimensional fast Fourier transform on D (D is an integer of 2 or more) dimension data , and converting the D dimension data into axial one-dimensional data orthogonal to each other. a one-dimensional Fourier transform with respect to one-dimensional data each group D obtained by dividing a multi-dimensional fast Fourier transform parallel operation device which performs by parallel operation based on a predetermined calculation algorithm,
Of the one-dimensional Fourier transforms for each of the D sets of one-dimensional data, the calculation in the d-dimensional Fourier transform of the d-th (d is an integer not less than 0 and not more than D-1) set is performed.
Element number N d included in the one-dimensional data (N d is an integer of 2 or more) is decomposed the number of prime factors of the n d (n d is an integer of 2 or more) n d pieces of operation stage as,
The first operation stage executed first among the n d operation stages is a process of dividing the one-dimensional data with respect to the one-dimensional data arranged in the row direction, and the divided data in the column direction. And a process of performing a one-dimensional Fourier transform on the data arranged in the row direction and the column direction in the column direction,
Wherein n d pieces of the second through n second through n d -1 operation stage is performed -1st d of calculation stages, for one-dimensional data arranged in the row direction, the one-dimensional data A process for multiplying each element by a twist coefficient, a process for dividing the multiplied data, a process for arranging the divided data in the column direction, and a one-dimensional data in the row direction and the column direction. Including Fourier transform processing,
The n d operation stage to be executed last among the n d pieces of operation stages, for one-dimensional data arranged in the row direction, a process of multiplying the twiddle factor to each element of said one-dimensional data, A process of performing a one-dimensional Fourier transform on the multiplied data in the row direction,
The n d operation stages are grouped into N (N is an integer of 2 or more and n d or less) sets of operation stages each including one or more operation stages that are sequentially and sequentially calculated ,
Each of the N sets of calculation stages is assigned to the plurality of calculation means,
Configured to calculate the d-th set of one-dimensional Fourier transform for all d between 0 and D−1, and
The number of one-dimensional data to be calculated in the d-th set of one-dimensional Fourier transform is M d, and m = 1, 2,..., M d −1, n = 1, 2,. -1,
When calculating each of the d-th set of one-dimensional Fourier transforms,
The calculation means assigned the first set of calculation stages including the first calculation stage executes the first set of calculation stages for the m-th one-dimensional data, and the result is The mth calculation result of the calculation means is transmitted to the calculation means assigned with the second set of calculation stages via the calculation result exchange means, and at the same time, the m + 1th one-dimensional data is sent to the m + 1th one-dimensional data. The first set of calculation stages is executed, and the result is transmitted as the (m + 1) th calculation result of the calculation means to the calculation means to which the second set of calculation stages is assigned via the calculation result exchange means. And
It is the n-th set the assigned computing means computing stage, to the m-th calculation result of the operation means that are assigned a set of (n-1) th operation stage, the n-th operation stearyl over And the result is sent as the m-th calculation result of the calculation means to the calculation means to which the set of the (n + 1) -th calculation stage is assigned via the calculation result exchange means, and at the same time For the (m + 1) th calculation result of the calculation means to which the (n-1) th calculation stage set is assigned, the nth calculation stage set is executed, and the result is used as the (m + 1) th calculation result of the calculation means. As a result, the calculation result exchange means transmits the calculation result to the calculation means to which the set of the (n + 1) th calculation stage is assigned,
Wherein said n d N-th computing means assigned a set of arithmetic stage includes an operational stage, with respect to the m-th calculation result of the operation means that are assigned a set of the N-1 th operation stage, The set of the Nth calculation stage is executed, the calculation result is accumulated, and the Nth calculation result is calculated for the (m + 1) th calculation result of the calculation means assigned with the (N-1) th calculation stage set. It is configured to execute a set of calculation stages and accumulate the calculation results.
For all d from 0 to D-2,
When computing means assigned the Nth computation stage set when computing the d-th one-dimensional Fourier transform computes the first d + 1-th set of one-dimensional Fourier transform to be executed next. A multi-dimensional fast Fourier transform parallel computing device, characterized in that a set of the second computing stage is assigned .
前記1次元フーリエ変換を行う所定の演算アルゴリズムがCooley-Tukeyの手法であることを特徴とする請求項記載の多次元高速フーリエ変換並列演算装置。4. The multi-dimensional fast Fourier transform parallel arithmetic apparatus according to claim 3, wherein the predetermined arithmetic algorithm for performing the one-dimensional Fourier transform is a Cooley-Tukey method. 複数の演算手段と前記複数の演算手段のうちのいずれかの演算手段で演算された演算結果を受信して前記複数の演算手段のうちの他の演算手段に送信する演算結果交換手段とを有するコンピュータに、D(Dは2以上の整数)次元のデータに対する多次元高速フーリエ変換を、前記D次元のデータを互いに直交する軸方向の1次元データに分割して得たD組の1次元データそれぞれに対する1次元フーリエ変換を所定の演算アルゴリズムに基づき並列演算によって実行させる多次元高速フーリエ変換並列演算プログラムを記録した記録媒体であって、
前記D組の1次元データそれぞれに対する1次元フーリエ変換のうちの第d(dは0以上D−1以下の整数)組目の1次元フーリエ変換における演算が、当該1次元データに含まれるエレメント数 d (N d は2以上の整数)の素因数の数をn d (n d は2以上の整数)としてn d の演算ステージに分解され、
前記n d 個の演算ステージのうち最初に実行される第1演算ステージは、行方向に並べられた1次元データに対して、該1次元データを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち2番目ないしn d −1番目に実行される第2ないし第n d −1演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを分割する処理と、分割されたデータを列方向に並べる処理と、行方向および列方向に並べられたデータを列方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージのうち最後に実行される第n d 演算ステージは、行方向に並べられた1次元データに対して、該1次元データの各エレメントにひねり係数を乗算する処理と、乗算されたデータを行方向に1次元フーリエ変換する処理とを含み、
前記n d 個の演算ステージが、それぞれ連続して順次演算される1以上の演算ステージからなるN(Nは2以上n d 以下の整数)組の演算ステージの組に組分けされ、
前記N組の演算ステージの組が、それぞれ前記複数の演算手段に割り当てられている場合に、
前記コンピュータに、0以上D−1以下の全てのdについて、前記第d組目の1次元フーリエ変換を演算する処理を実行させ、
前記第d組目の1次元フーリエ変換において演算すべき1次元データの数をM d とし、m=1,2,・・・,M d −1、n=1,2,・・・,N−1として、
前記第d組目の1次元フーリエ変換を演算する処理のそれぞれが、
前記第1演算ステージを含む第1番目の演算ステージの組を割り当てられた演算手段が、第m番目の1次元データに対し、前記第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第m+1番目の1次元データに対し、第1番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第2番目の演算ステージの組が割り当てられた演算手段に送信する処理と、
第n番目の演算ステージの組を割り当てられた演算手段が、第n−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信し、それと同時に第n−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第n番目の演算ステージの組を実行し、その結果を当該演算手段の第m+1番目の演算結果として、前記演算結果交換手段を介し、第n+1番目の演算ステージの組が割り当てられた演算手段に送信する処理と、
前記第n d 演算ステージを含む第N番目の演算ステージの組を割り当てられた演算手段が、第N−1番目の演算ステージの組を割り当てられた演算手段の第m番目の演算結果に対し、前記第N番目の演算ステージの組を実行し、その演算結果を蓄積し、第N−1番目の演算ステージの組を割り当てられた演算手段の第m+1番目の演算結果に対し、第N番目の演算ステージの組を実行し、その演算結果を蓄積する処理とを含み、
0以上D−2以下の全てのdについて、
前記第d番目の1次元フーリエ変換を演算する処理において第N番目の演算ステージの組を割り当てられた演算手段が、次に実行する第d+1組目の1次元フーリエ変換を演算する処理において第1番目の演算ステージの組を割り当てられている
ことを特徴とする多次元高速フーリエ変換並列演算プログラムを記録した記録媒体。
A plurality of calculation means and a calculation result exchanging means for receiving a calculation result calculated by any one of the plurality of calculation means and transmitting the result to another calculation means of the plurality of calculation means. D sets of one-dimensional data obtained by dividing a multi-dimensional fast Fourier transform on D (D is an integer of 2 or more) dimensional data into one-dimensional data in the axial direction orthogonal to each other. A recording medium on which a multi-dimensional fast Fourier transform parallel computation program for executing one-dimensional Fourier transform for each by parallel computation based on a predetermined computation algorithm is recorded,
Of the one-dimensional Fourier transform for each of the D sets of one-dimensional data, the number of elements included in the one-dimensional Fourier transform of the d-th (d is an integer of 0 to D-1) set n d (n d is an integer of 2 or more) is decomposed the number of prime factors of the n d (n d is an integer of 2 or more) n d pieces of operation stage as,
The first operation stage executed first among the n d operation stages is a process of dividing the one-dimensional data with respect to the one-dimensional data arranged in the row direction, and the divided data in the column direction. And a process of performing a one-dimensional Fourier transform on the data arranged in the row direction and the column direction in the column direction,
Wherein n d pieces of the second through n second through n d -1 operation stage is performed -1st d of calculation stages, for one-dimensional data arranged in the row direction, the one-dimensional data A process for multiplying each element by a twist coefficient, a process for dividing the multiplied data, a process for arranging the divided data in the column direction, and a one-dimensional data in the row direction and the column direction. Including Fourier transform processing,
The n d operation stage to be executed last among the n d pieces of operation stages, for one-dimensional data arranged in the row direction, a process of multiplying the twiddle factor to each element of said one-dimensional data, A process of performing a one-dimensional Fourier transform on the multiplied data in the row direction,
Wherein n d pieces of operation stages, is set to grouping of one or more calculation stages consisting N (N is 2 or more n d an integer) sets of operation stage sequentially calculating each continuous,
When the N sets of calculation stages are respectively assigned to the plurality of calculation means ,
Causing the computer to execute a process of calculating the d-th set of one-dimensional Fourier transforms for all d between 0 and D−1;
The number of one-dimensional data to be calculated in the d-th set of one-dimensional Fourier transform is M d, and m = 1, 2,..., M d −1, n = 1, 2,. -1,
Each of the processes for calculating the d-th set of one-dimensional Fourier transforms includes:
The calculation means assigned the first set of calculation stages including the first calculation stage executes the first set of calculation stages for the m-th one-dimensional data, and the result is The mth calculation result of the calculation means is transmitted to the calculation means assigned with the second set of calculation stages via the calculation result exchange means, and at the same time, the m + 1th one-dimensional data is sent to the m + 1th one-dimensional data. The first set of calculation stages is executed, and the result is transmitted as the (m + 1) th calculation result of the calculation means to the calculation means to which the second set of calculation stages is assigned via the calculation result exchange means. Processing to
The computing means to which the n-th computing stage set is assigned is the same as the n-th computing stage in response to the m-th computing result of the computing means to which the (n-1) -th computing stage set is assigned. The set is executed, and the result is transmitted as the mth calculation result of the calculation means to the calculation means to which the set of the (n + 1) th calculation stage is assigned via the calculation result exchange means, and at the same time, the nth The (n + 1) th operation stage set is executed on the (m + 1) th operation result of the operation means assigned the -1st operation stage set, and the result is used as the (m + 1) th operation result of the operation means. , A process of transmitting to the arithmetic means to which the set of the (n + 1) th arithmetic stage is assigned via the arithmetic result exchanging means ;
Wherein said n d N-th computing means assigned a set of arithmetic stage includes an operational stage, with respect to the m-th calculation result of the operation means that are assigned a set of the N-1 th operation stage, The set of the Nth calculation stage is executed, the calculation result is accumulated, and the Nth calculation result is calculated for the (m + 1) th calculation result of the calculation means assigned with the (N-1) th calculation stage set. Including executing a set of calculation stages and storing the calculation results,
For all d from 0 to D-2,
In the process of calculating the d-th one-dimensional Fourier transform, the calculation means assigned the N-th calculation stage set performs the first process of calculating the (d + 1) -th set of one-dimensional Fourier transforms. A recording medium on which a multi-dimensional fast Fourier transform parallel arithmetic program is recorded, characterized in that a set of the second arithmetic stage is assigned .
前記1次元フーリエ変換を行う所定の演算アルゴリズムがCooley-Tukeyの手法であることを特徴とする請求項記載の多次元高速フーリエ変換並列演算プログラムを記録した記録媒体。6. The recording medium recording a multi-dimensional fast Fourier transform parallel computation program according to claim 5, wherein the predetermined computation algorithm for performing the one-dimensional Fourier transform is a Cooley-Tukey method.
JP2000061128A 2000-03-06 2000-03-06 Multi-dimensional fast Fourier transform parallel calculation method and apparatus, and recording medium on which calculation program is recorded Expired - Fee Related JP3764318B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000061128A JP3764318B2 (en) 2000-03-06 2000-03-06 Multi-dimensional fast Fourier transform parallel calculation method and apparatus, and recording medium on which calculation program is recorded

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000061128A JP3764318B2 (en) 2000-03-06 2000-03-06 Multi-dimensional fast Fourier transform parallel calculation method and apparatus, and recording medium on which calculation program is recorded

Publications (2)

Publication Number Publication Date
JP2001249917A JP2001249917A (en) 2001-09-14
JP3764318B2 true JP3764318B2 (en) 2006-04-05

Family

ID=18581326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000061128A Expired - Fee Related JP3764318B2 (en) 2000-03-06 2000-03-06 Multi-dimensional fast Fourier transform parallel calculation method and apparatus, and recording medium on which calculation program is recorded

Country Status (1)

Country Link
JP (1) JP3764318B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6666548B2 (en) 2016-03-14 2020-03-18 富士通株式会社 Parallel computer, FFT operation program and FFT operation method

Also Published As

Publication number Publication date
JP2001249917A (en) 2001-09-14

Similar Documents

Publication Publication Date Title
JP5689282B2 (en) Computer-implemented method, computer-readable storage medium and system for transposing a matrix on a SIMD multi-core processor architecture
US7461114B2 (en) Fourier transform apparatus
US4821224A (en) Method and apparatus for processing multi-dimensional data to obtain a Fourier transform
EP0902375A2 (en) Apparatus for fast Fourier transform
Cheng et al. Hardware efficient fast DCT based on novel cyclic convolution structures
CN110766128A (en) Convolution calculation unit, calculation method and neural network calculation platform
EP3789891A1 (en) Number-theoretic transform hardware
CN113608717B (en) Mathematical transformation calculation circuit and method and computer equipment
US6003056A (en) Dimensionless fast fourier transform method and apparatus
Swarztrauber et al. Vector and parallel methods for the direct solution of Poisson's equation
JP3639207B2 (en) A parallel processing method of multidimensional Fourier transform in a shared memory scalar parallel computer.
Bhuyan et al. Performance analysis of FFT algorithms on multiprocessor systems
JP3764318B2 (en) Multi-dimensional fast Fourier transform parallel calculation method and apparatus, and recording medium on which calculation program is recorded
US6728742B1 (en) Data storage patterns for fast fourier transforms
Cosnard et al. Analysis of asynchronous polynomial root finding methods on a distributed memory multicomputer
CN115859003A (en) Method, device and equipment for executing FFT
Grigoryan Efficient algorithms for computing the 2-D hexagonal Fourier transforms
Göttfert An acceleration of the Niederreiter factorization algorithm in characteristic 2
Usevich Decomposing multivariate polynomials with structured low-rank matrix completion
US20200142670A1 (en) Radix-23 Fast Fourier Transform for an Embedded Digital Signal Processor
Kekre et al. Unified fast algorithm for most commonly used transforms using mixed radix and kronecker product
US6438568B1 (en) Method and apparatus for optimizing conversion of input data to output data
Scherson et al. Vector computations on an orthogonal memory access multiprocessing system
US20230169143A1 (en) Method and apparatus for efficient multidimensional fast fourier transforms
López et al. Unified framework for the parallelization of divide and conquer based tridiagonal systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050719

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: 20060110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060119

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090127

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100127

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110127

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees