Bailey's FFT algorithm: Difference between revisions

Content deleted Content added
edited
Line 1:
{{in use}}
The Bailey FFT is a high-performance algorithm for computing the fast Fourier transform (FFT) on vector supercomputers. It is designed for systems with external or hierarchical memory, which are common in vector supercomputers. The Bailey FFT uses a number of techniques to reduce the number of passes through the data set, including:
[[File:Bailey 4-step FFT.svg|thumb|Bailey algorithm (4-step version) for a 16-point FFT]]
The '''Bailey FFT''' (also known as a '''4-step FFT''') is a high-performance algorithm for computing the [[fast Fourier transform]] (FFT) on vector supercomputers. It is designed for systems with external or hierarchical memory, which are common in vectormodern supercomputerscomputers. The Bailey FFT uses a number of techniques to reduceimprove the number of passes through the data set, includingperformance:
 
* Strictly unit [[stride]], long vector transfers between main memory and external storage
* A modest amount of scratch space in main memory
* Well-suited for vector and parallel computation
Line 7 ⟶ 9:
The Bailey FFT is typically used for computing DFTs of large datasets, such as those used in scientific and engineering applications.
 
Here is a brief overview of how the "4-step" version of the Bailey FFT algorithm works:
 
1.# The data (in natural order) is first partitionedarranged into groups ofa vectorsmatrix.
2.# Each groupcolumn of vectorsa matrix is then independently processed using a standard FFT algorithm.
# Each element of a matrix is multiplied by a correction coefficient.
3. The results of the individual FFTs are then combined to form the final FFT.
# Each row of a matrix is then independently processed using a standard FFT algorithm.
 
The result (in natural order) is read column-wise.
 
The Bailey FFT is a very efficient algorithm, and it has been used to compute FFTs of datasets with billions of elements.