FFTXlib is the stand-alone kernel that represents the Fast Fourier Transformation (FFT) algorithm used in the Quantum ESPRESSO application, one of the most used plane-wave Density Functional Theory (DFT) codes in the community of material science. The FFT kernel implements a layered MPI communication with FFT task groups to split the cost of collective communication operations to balance the impact on the performance.
The FFTXlib kernel reproduces the FFT code needed when an operator diagonal in
real space should be applied to the wave functions. Since the wave functions
are expressed in the reciprocal space, first a forward transformation is
applied, then the potential is applied and, finally, a backward transformation
is performed. When the FFT task group parallelization is switched on, each MPI
process has only a subset of the G-vectors for a given set of Kohn-Sham
states. For the computation of the FFT, then, the G-vectors should be
redistributed with an MPI_Alltoall
inside the task groups. After this has
been done, the FFT can be computed for the whole wave function. The origin
source code repository is hosted in
GitHub.
The program can be executed using different command line configurable options.
Users may set the plane wave energy cut-off, the lattice parameter, the number
of bands, or the number of task groups (i.e., the MPI grouping policy), by
setting the corresponding command line option when executing the program. In
the program’s root directory, users can find a README.TEST
file with the
building and the execution instructions.