Determining an out-of-Core FFT Decomposition Strategy for Parallel Disks by Dynamic Programming
We present an out-of-core FFT algorithm based on the in-core FFT method developed by Swarztrauber. Our algorithm uses a recursive divide-and-conquer strategy, and each stage in the recursion presents several possibilities for how to split the problem into subproblems. We give a recurrence for the algorithm’s I/O complexity on the Parallel Disk Model and show how to use dynamic programming to determine optimal splits at each recursive stage. The algorithm to determine the optimal splits takes only Θ(lg2 N) time for an N-point FFT, and it is practical. The out-of-core FFT algorithm itself takes considerably longer.
KeywordsDynamic Programming Discrete Fourier Transform Recursive Call Disk Access Parallel Disk
Unable to display preview. Download preview PDF.
- D.H. Bailey, FFTs in external or hierarchical memory, The Journal of Super-computing, 4 (1990), pp. 23–35.Google Scholar
- T.H. Cormen AND D.M. Nicol, Performing out-of-core FFTs on parallel disk systems, Tech. Rep. PCS-TR96–294, Dartmouth College Department of Computer Science, Aug. 1996, To appear in Parallel Computing.Google Scholar
- T.H. Cormen, T.Sundquist, AND L.F.Wisniewski, Asymptotically tight bounds for performing BMMC permutations on parallel disk systems, Tech. Rep. PCSTR94–223, Dartmouth College Department of Computer Science, July 1994. Preliminary version appeared in Proceedings of the 5th Annual ACM Symposium on Parallel Algorithms and Architectures. Revised version to appear in SIAM Journal on Computing.Google Scholar
- T.H. Cormen, J. Wegmann, AND D.M. Nicol Multiprocessor out-of-core FFTs with distributed memory and parallel disks, in Proceedings of the Fifth Workshop on I/O in Parallel and Distributed Systems (IOPADS ‘87), Nov. 1997, pp. 68–78. Also Dartmouth College Computer Science Technical Report PCSTR97–303.CrossRefGoogle Scholar
- Z. Li, Computational Models and Program Synthesis for Parallel Out-of-Core Computation, PhD thesis, Department of Computer Science, Duke University, 1996.Google Scholar