Skip to content

P3DFFT Home Page

Parallel Three-Dimensional Fast Fourier Transforms, dubbed P3DFFT, is a library for large-scale computer simulations in a wide range of sciences, such as physics, climatology and chemistry. This project was initiated at the San Diego Supercomputer Center (SDSC) at UC San Diego by Dmitry Pekurovsky as a branch of the Strategic Applications Collaborations (SAC) project.

The primary website for P3DFFT has moved to Google Code, where the newest updates are available. There is also a P3DFFT Google Group, which supports interactive user discussion and collaboration. Please use those resources to keep abreast of the latest user-relevant and code development topics.

  • As of August 10, 2010 the current version was 2.4. Please see the Google sites to check for newer revisions.
  • Download P3DFFT from the Google Code site.
  • See a presentation on P3DFFT from 2007 SDSC Summer Institute
  • See the User Guide [PDF] for more information.


  • Highly scalable parallel implementation with 2D data decomposition.
  • Optimized for parallel communication and CPU performance.
  • Built on top of established 1D FFT libraries (FFTW or ESSL).
  • Fortran and C interfaces.
  • Example programs provided.

P3DFFT uses 2D, or pencil, decomposition. This overcomes an important limitation to scalability inherent in FFT libraries implementing 1D (or slab) decomposition: the number of processors/tasks used to run this problem in parallel can be as large as N^2, where N is the linear problem size. This approach has shown good scalability up to 32,768 cores on Ranger (Sun/AMD at TACC) when integrated into a Direct Numerical Simulation (DNS) turbulence application (see scaling analysis presentation at Teragrid’08 meeting, Las Vegas).

In the forward transform, given an input of an array of 3D real values, an output of 3D complex array of Fourier coefficients is returned. Note that only a little more than half of the complex coefficients are returned, since the rest can be restored by conjugate symmetry. In backward transform, the input is the half-sized complex array, and the output is full-sized real array. For more information, you can download the User Guide [PDF] from Google Code.


P3DFFT can be run on any parallel platform with support for Fortran 90 and MPI. It is also necessary that one of the two serial FFT libraries be installed on the system: IBM’s Engineering and Scientific Software Library (ESSL) or Fastest Fourier Transform in the West (FFTW).


Please send your feedback and questions to the main author, Dmitry Pekurovsky.

Did You Get
What You
Yes No