OpenFFT is an open
source parallel library for computing three-dimensional Fast
Fourier Transforms (3-D FFTs) of arbitrary input size
and complex data. It originates from OpenMX (Open
source package for Material eXplorer). OpenFFT adopts
a decomposition method that is capable of reusing data when
transposing from one dimension to another for reducing the total volume
of communication. It is written in C
and MPI, with support for Fortran through the Fortran interface, and employs FFTW
for computing 1-D FFTs.
Features
- Domain
decomposition method. OpenFFT
adopts
a 2-D decomposition method that is capable of reusing data when
transposing from one dimension to another for reducing the total volume of
communication. Also, the decomposition is adaptive, and can
automatically switch between 1-D and 2-D depending on the number of
processes and data size. Please refer to the publications for detail.
- Support
for fast parallel transforms of 3-D FFTs of
arbitrary input size
and complex data.
- Portable,
tested on various general-purpose Linux clusters and popular
supercomputers, including Cray XC30, SGI Altix UV1000, FX10, and the K
computer.
- Written
in C and MPI, with support for Fortran through the Fortran interface.
- Open
source library, released under the GNU General Public License (GPL).
Manual
Publications
- T.V.T.
Duy, T.
Ozaki: A
decomposition method with minimum communication amount for
parallelization of multi-dimensional FFTs. CoRR
abs/1302.6189 (2013)
- T.V.T.
Duy, T.
Ozaki: A
three-dimensional domain decomposition method for large-scale DFT
electronic structure calculations. arXiv:1209.4506 (2012)
- T.V.T.
Duy, T.
Ozaki: A
decomposition method with minimal communication volume for
parallelization of multi-dimensional FFTs. ICS
2013:
467-468
- T.V.T.
Duy, T.
Ozaki: A
massively parallel domain decomposition method for large-scale DFT
electronic structure calculations. ICS
2013:
469-470
Acknowledgements
Feedback
Please
feel free to drop us a line at {duytvt,t-ozaki}@jaist.ac.jp for your
questions, comments, suggestions, and bug reports.
Last updated: August 23, 2013.