Abstract

The fast Fourier transform (FFT) is a fundamental kernel in a wide variety of science and engineering fields from electronic structure calculations to medical imaging. OpenFFT is an open-source package for parallel 3-D FFTs, built on a domain decomposition method with optimal communication for minimizing the volume of communication. However, OpenFFT version 1.1 does not support hybrid calculations for fully utilizing common multi-core machines and parallel 4-D FFTs. In addition, there exist several state-of-the-art open-source packages for parallel FFTs, and performance comparison among them would be interesting and helpful for potential users. In this paper, we (1) extend the functionality of OpenFFT by developing a hybrid MPI/OpenMP version and a parallel 4-D FFT, and (2) conduct performance comparison among the currently available parallel FFT packages. In the former, we first analyze the computational parts of OpenFFT to explore the opportunities for taking advantage of fine-grained parallelization with OpenMP. Based on the analysis, we implement and make comparison to choose between the two most promising hybrid options. We then develop the parallel 4-D FFT by extending the hybrid implementation of the parallel 3-D FFT. The decomposition method for 4-D FFTs preserves its 3-D original features to maximize the localization of data when transposing. In the latter, we evaluate and compare the performance of FFTE, P3DFFT, PFFT, 2DECOMP&FFT, and OpenFFT for both 3-D and 4-D FFTs on a number of different machines with varied computational scales. The evaluation results assert the benefit of the hybrid feature in improving the scalability of OpenFFT, and confirm its minimal volume of communication for 4-D FFTs in practice. Also, although no significant difference is observed in overall performance in general, there are specific cases when some packages have the edge over the others.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.