Jump to main content
Michael Pippig
Software

PFFT: Parallel FFT

PFFT is a parallel FFT software library based on MPI and distributed under GPL license. The most recent publication about PFFT is
download PDF download BibTeX
  • M. Pippig: PFFT - An Extension of FFTW to Massively Parallel Architectures
    SIAM J. Sci. Comput., 35(3), C213-C236, 2013. DOI: 10.1137/120885887 Online ressource available
Please use this paper as an introduction to PFFT and for citations.

Downloads

Clone the most recent version of the PFFT repository from Github
    https://github.com/mpip/pfft
or choose an older release from the following list:
  • pfft-1.0.8-alpha.tar.gz (December 12, 2014)
    Added extended documentation.
  • pfft-1.0.7-alpha.tar.gz (April 04, 2013)
    Added Fortran 2003 interface.
  • pfft-1.0.6-alpha.tar.gz
    Improved interface, faster tuning.
  • pfft-1.0.5-alpha.tar.gz
    Minor changes related to PNFFT-1.0.3-alpha. Added support for single, double and long double precision.
  • pfft-1.0.4-alpha.tar.gz (Update: bugfix in r2c interface on October 21, 2011)
    Added support of the calculation of d-dimensional FFTs on (d-1)-dimensional process meshs. In addition, the library was extended to r2c, c2r and r2r FFTs.
  • pfft-1.0.2-alpha.tar.gz (Update: bugfix in Fortran interface on March 08, 2011)
    Added new interface for d-dimensional FFTs (d>2), improved ghost cell creation, a Fortran interface, and several bugfixes.
  • pfft-1.0.1-alpha.tar.gz
    This is a first test version of a parallel three-dimensional FFT software library.
PFFT depends on the FFTW software library. We highly recommomend to install the newest version of FFTW with the help of our install scripts. Note that these scripts include several performance patches and bugfixes for FFTW.

User Manual

A preliminary version of the user manual is available for download.
download PDF
  • M. Pippig: PFFT User manual
The most recent version of the user manual can be generated within the PFFT build tree via 'make doc'. Furthermore, have a look at the example files in directory 'tests' to get an overview of the interface. The tests can be built with 'make check'.

Python Interface

Python wrappers for PFFT are available at
    https://github.com/rainwoodman/pfft-python
Many thanks to Yu Feng for his great work.

Feedback

Feel free to contact us for any questions, comments, or bug reports!
Contact:

Acknowledgements

The development of the PFFT library was supported by the German Ministery of Science and Education (BMBF) under grant 01IH08001B.

PNFFT: Parallel NFFT

PNFFT is a parallel software library for the calculation of three-dimensional nonequispaced FFTs based. It is available under GPL licence. The parallelization is based on MPI. The most recent publication about PNFFT is
download PDF download BibTeX
  • M. Pippig and D. Potts: Parallel Three-Dimensional Nonequispaced Fast Fourier Transforms and Their Application to Particle Simulation
    SIAM J. Sci. Comput., 35(4), C411-C437, 2013. DOI: 10.1137/120888478 Online ressource available
Please use this paper as an introduction to PNFFT and for citations.

Downloads

Clone the most recent version of the PNFFT repository from Github
    https://github.com/mpip/pnfft
or choose an older release from the following list:
PNFFT depends on the FFTW and the PFFT software library. We highly recommomend to install the newest version of FFTW with the help of our install scripts. Note that these scripts include several performance patches and bugfixes for FFTW.

User Manual

The install of PNFFT is similar to the install of PFFT. Look at the test cases in the 'test' directory to learn the interface and usage. You can build the tests via 'make check'. An extended manual is under construction. Therefore, feel free to contact us, if you have questions about the install process or the usage of the interface.

Feedback

Feel free to contact us for any questions, comments, or bug reports!
Contact:

Acknowledgements

The development of the PNFFT library was supported by the German Ministery of Science and Education (BMBF) under grant 01IH08001B.

P2NFFT: Particle-Particle--NFFT

The Particle-Particle--NFFT (P2NFFT) is a general framework for particle mesh algorithms based on nonequispaced fast Fourier transforms (NFFT). By appropriate choice of parameters, this framework includes the Particle-Mesh Ewald methods for periodic boundary conditions and the fast summation algorithm for non-periodic boundary conditions.
This method is part of the ScaFaCoS library; visit the official ScaFaCoS homepage for more details.

Install scripts

The following scripts simplify the install of our software. They can be easily adapted to other compilers.
Important: Within these scripts we apply the following patches that have been submitted to FFTW but are not yet included in FFTW-3.3.4:
  • We add two more global transposition algorithms to the planner.
  • We patch file mpi/transpose-pairwise.c in order to fix a double free bug.
Hint: First install FFTW-3.3.4.
Hint: First install FFTW-3.3.4 and PFFT-1.0.8-alpha.