TY - GEN
T1 - Parallel sparse FFT
AU - Wang, Cheng
AU - Araya-Polo, Mauricio
AU - Chandrasekaran, Sunita
AU - St-Cyr, Amik
AU - Chapman, Barbara
AU - Hohl, Detlef
PY - 2013
Y1 - 2013
N2 - The Fast Fourier Transform (FFT) is a widely used numerical algorithm. When N input data points lead to only k ≪ N non-zero coefficients in the transformed domain, the algorithm is clearly inefficient: the FFT performs O(NlogN) operations on N input data points in order to calculate only k non-zero or large coefficients, and N - k zero or negligibly small ones. The recently developed sparse FFT (sFFT) algorithm provides a solution to this problem. As are those for the FFT, sFFT algorithms are complex and still computationally challenging. The computational difficulties are mainly due to memory access patterns that are irregular and dynamically changing. Modern compute platforms are exclusively based on multi-core processors, therefore a natural path to enhance the sFFT's performance is to exploit parallelism. This is the approach chosen in this work. We have analyzed in detail and parallelized the most time consuming segments of the algorithm. Our parallel sFFT (PsFFT) implementation achieves approximately 60% parallel efficiency on a single 8-core Intel Sandy Bridge socket for relevant test cases. In addition, we apply several techniques such as index coalescing, data affiliated loops and multi-level blocking techniques to alleviate memory access congestion and increase performance.
AB - The Fast Fourier Transform (FFT) is a widely used numerical algorithm. When N input data points lead to only k ≪ N non-zero coefficients in the transformed domain, the algorithm is clearly inefficient: the FFT performs O(NlogN) operations on N input data points in order to calculate only k non-zero or large coefficients, and N - k zero or negligibly small ones. The recently developed sparse FFT (sFFT) algorithm provides a solution to this problem. As are those for the FFT, sFFT algorithms are complex and still computationally challenging. The computational difficulties are mainly due to memory access patterns that are irregular and dynamically changing. Modern compute platforms are exclusively based on multi-core processors, therefore a natural path to enhance the sFFT's performance is to exploit parallelism. This is the approach chosen in this work. We have analyzed in detail and parallelized the most time consuming segments of the algorithm. Our parallel sFFT (PsFFT) implementation achieves approximately 60% parallel efficiency on a single 8-core Intel Sandy Bridge socket for relevant test cases. In addition, we apply several techniques such as index coalescing, data affiliated loops and multi-level blocking techniques to alleviate memory access congestion and increase performance.
KW - irregular algorithms
KW - OpenMP
KW - sparse FFT
UR - https://www.scopus.com/pages/publications/84891517258
U2 - 10.1145/2535753.2535764
DO - 10.1145/2535753.2535764
M3 - Conference contribution
AN - SCOPUS:84891517258
SN - 9781450325035
T3 - Proc. of IA3 2013 - 3rd Workshop on Irregular Appl.: Architectures and Algorithms, Held in Conjunction with SC 2013: The Int. Conf. for High Performance Computing, Networking, Storage and Analysis
BT - Proc. of IA3 2013 - 3rd Workshop on Irregular Appl.
T2 - 3rd Workshop on Irregular Applications: Architectures and Algorithms, IA3 2013 - Held in Conjunction with the International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2013
Y2 - 17 November 2013 through 22 November 2013
ER -