Introduction
Download
Features
Manual
Publications
Acknowledgements
Feedback
Introduction
OpenFFT is an open
source parallel package for computing three-dimensional Fast
Fourier Transforms (3-D FFTs) of both real and complex numbers of
arbitrary
input size.
It originates from OpenMX
(Open
source package for Material eXplorer). OpenFFT adopts
a communication-optimal domain decomposition method that is adaptive and capable of
localizing 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 FFTW3
for computing 1-D FFTs.
OpenFFT is developed by Truong Vinh Truong Duy and
Taisuke Ozaki at the University of Tokyo.
Download
OpenFFT version 1.1 is
the latest vesion of OpenFFT, and is downloadable from here. Please note that
the API of OpenFFT1.1 is incompatible
with that of OpenFFT1.0
due to the additions of the auto-tuning feature and r2c interface.
Upgrade to OpenFFT1.1 from OpenFFT1.0 is highly recommended.
RELEASE
NOTES:
-
OpenFFT version 1.1 (November
11, 2014)
- Download:
openfft1.1.tar.gz.
Manual: manual1.1.html (HTML), OpenFFT1.1_Guide.pdf (PDF).
- The
c2c interface is changed from openfft_initialize()
and openfft_execute() to openfft_init_c2c_3d() and
openfft_exec_c2c_3d() for initialization and execution, respectively.
- Addition of the r2c interface comprised of
openfft_init_r2c_3d() and openfft_exec_r2c_3d().
- Addition of the tuning of communication
to the c2c and r2c interfaces.
- OpenFFT version 1.0
(August 23, 2013)
Features
- Domain
decomposition method: OpenFFT
adopts
a 2-D decomposition method that is capable of localizing 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 complex-to-complex and real-to-complex transforms of
3-D FFTs with
arbitrary
input size.
- Tuning
of communication with an auto-tuning feature.
- Portable,
tested on various general-purpose Linux clusters and popular
supercomputers, including Cray XC30, SGI Altix UV1000, SGI InfiniBand
cluster, FX10, and the K
computer.
- Written
in C and MPI, with
support for Fortran through the Fortran interface.
- Open
source package, released under the GNU General Public License (GPL).
Manual
Publications
[1] T.V.T.
Duy and T. Ozaki, "A decomposition method with minimum communication
amount for parallelization of multi-dimensional FFTs", Computer Physics
Communications, Vol. 185, Issue 1, pp. 153-164, 2014. DOI:
10.1016/j.cpc.2013.08.028[2] T.V.T.
Duy and T. Ozaki, "A three-dimensional domain decomposition method for
large-scale DFT electronic structure calculations", Computer Physics
Communications, Vol. 185, Issue 3, pp. 777-789, 2014. DOI:
10.1016/j.cpc.2013.11.008[3] Best
Research Poster Award for "OpenFFT: An Open-Source Package for 3-D FFTs
with Minimal Volume of Communication", the 29th International
Supercomputing Conference (ISC'14), 2014.
Acknowledgements
This
package has its origins in OpenMX (Open
source package for Material eXplorer), and has been funded by CMSI
(Computational Materials Science Initiative) of the HPCI
Strategic Program (SPIRE) of the Ministry of Education, Culture,
Sports, Science and Technology of Japan. We
are thankful to Japan Advanced Institute of Science and Technology
(JAIST) for the computational resources. We also thank Prof.
Katsumi Hagita of National Defense Academy of Japan
for helpful discussions and contribution to the r2c interface.
Feedback
Please
feel free to drop us a line at duytvt@issp.u-tokyo.ac.jp (Truong Vinh
Truong Duy) or t-ozaki@issp.u-tokyo.ac.jp (Taisuke Ozaki) for
questions, comments, suggestions, and bug reports.
Last updated:
November 11, 2014.