Abstract
The Fourier interpolation of 3D data-sets is a performance critical operation in many fields, including certain forms of image processing and density functional theory (DFT) quantum chemistry codes based on plane wave basis sets, to which this paper is targeted. In this paper we describe three different algorithms for performing this operation built from standard discrete Fourier transform operations, and derive theoretical operation counts. The algorithms compared consist of the most straightforward implementation and two that exploit techniques such as phase-shifts and knowledge of zero padding to reduce computational cost. Through a library implementation (tintl) we explore the performance characteristics of these algorithms and the performance impact of different implementation choices on actual hardware. We present comparisons within the linear-scaling DFT code ONETEP where we replace the existing interpolation implementation with our library implementation configured to choose the most efficient algorithm. Within the ONETEP Fourier interpolation stages, we demonstrate speed-ups of over 1.55×.
Highlights
Fourier interpolation of discretely sampled data has a wide variety of uses across various domains—these include postprocessing of magnetic resonance imaging data [1], quantum-mechanical calculations using density functional theory [2] (DFT—not to be confused with the discrete Fourier transform which we do not abbreviate in this paper) and imaging for synthetic aperture radar [3]
A significant difference between ONETEP and plane-wave codes is the size of the datasets: The localisation of the non-orthogonal generalised Wannier functions (NGWFs) in ONETEP means that Fast Fourier Transform (FFT) operations are performed over relatively small datasets whilst FFT operations in plane wave codes are performed over the entire simulation cell
We have presented three algorithms for implementing Fourier upsampling built from Discrete Fourier transforms
Summary
Fourier interpolation of discretely sampled data has a wide variety of uses across various domains—these include postprocessing of magnetic resonance imaging data [1], quantum-mechanical calculations using density functional theory [2] (DFT—not to be confused with the discrete Fourier transform which we do not abbreviate in this paper) and imaging for synthetic aperture radar [3]. Many DFT codes are based upon plane-waves and, as a result, depend on efficient FFTs and Fourier interpolation. Dugan et al [5] perform this optimisation for a three-dimensional Poisson solver in the BigDFT package This technique is used in ONETEP in the existing Fourier interpolation implementation, and is the one we compare against. The Fourier interpolation algorithm is necessary in many DFT codes such as CASTEP [10], VASP [11], QUANTUM ESPRESSO [12] CPMD [13] and ABINIT [14] It is used within the ONETEP [15] (Order-N Electronic Total Energy Package) linear-scaling code for quantum-mechanical calculations based on DFT, which we use as a case study here.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
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.