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, chemistry. This project was initiated at San Diego Supercomputer Center (SDSC) at UC San Diego by Dmitry Pekurovsky as a branch off a Strategic Applications Collaborations (SAC) project.
- Current Version: 2.3.1; last updated 11/18/2008 (see Version History)
- Subscribe to update announcements; improvements to this product are ongoing. Enter your e-mail address and select Parallel 3-D FFT from the list of subscriptions.
- Download P3DFFT
- See a presentation on P3DFFT from 2007 SDSC Summer Institute
- See bottom of this page for package information.
- See User Guide (HTML, PDF) for more information
Features (v. 2.3)
- 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.
- Extra feature: ghost cell operations for nearest-neighbor communication (author Jens Henrik Goebbert, RWTH-Aachen).
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, were 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 see User Guide.
Requirements
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).
P3DFFT is already installed in /usr/local/apps/p3dfft directory on SDSC Teragrid system (IA-64 cluster) and Blue Gene.
Package Information
This package includes source code and makefiles necessary to build the library. Makefiles for several platforms are supplied but users might need to modify them to their particular architecture details, such as compile options and library locations. In addition, examples/test programs illustrating the use of the library are provided.
Feedback
Please send your feedback and questions to the main author Dmitry Pekurovsky, dmitry@sdsc.edu


