A parallel algorithm to compute the singular value decomposition (SVD) of block circulant matrices on the Cray-2 is described. For a block circulant form described by M blocks with m x n elements in each block, the computation time using an SVD algorithm for general matrices has a lower bound (M3min(m, n)mn). Using a combination of fast Fourier transform (FFT) and SVD steps, the computation time for block circulant singular value decomposition (BCSVD) has a lower bound (Mmin(m, n)mn); a relative savings of ~ M2. Memory usage bounds are reduced from (M2mn) to (Mmn); a relative savings of ~ M. For M = m = n = 64, this decreases the computation time from approximately 12 hours to 30 seconds and memory usage is reduced from 768 megabytes to 12 megabytes. The BCSVD algorithm partitions well into n macrotasks with a granularity of (mM log M) for the FFT portion of the algorithm. The SVD portion of the algorithm partitions into M macrotasks with a granularity of (min(m, n)mn). Again, for the case where M = m = n = 64, the FFT granularity is 29ms and the SVD granularity is 428ms. A speedup of 3.06 was achieved by using a prescheduled partitioning of tasks. The process creation overhead was 2.63ms. Using a more elaborate self-scheduling method with four synchronizing server processes, a speedup of 3.25 was observed with four processors available. The server synchronization overhead was 0.32ms. Relative memory overhead in both cases was about 4% for data space and 40% for code space.
[1]
Alvin M. Despain,et al.
Very Fast Fourier Transform Algorithms Hardware for Implementation
,
1979,
IEEE Transactions on Computers.
[2]
Gene H. Golub,et al.
Matrix computations
,
1983
.
[3]
David Gelernter.
Guest Editor's Introduction: Domesticating Parallelism
,
1986,
Computer.
[4]
Michael J. Quinn,et al.
Designing Efficient Algorithms for Parallel Computers
,
1987
.
[5]
Peter C. Patton.
Multiprocessors: Architecture and Applications
,
1985,
Computer.
[6]
John R. Rice,et al.
Numerical methods, software, and analysis
,
1983
.
[7]
Donald Ervin Knuth,et al.
The Art of Computer Programming
,
1968
.
[8]
B. R. Hunt,et al.
Digital Image Restoration
,
1977
.
[9]
David A. Fisher,et al.
Parallel Processing in Ada
,
1986,
Computer.
[10]
E. O. Brigham,et al.
The Fast Fourier Transform
,
1967,
IEEE Transactions on Systems, Man, and Cybernetics.