Skip to content
/ p3dfft Public

P3DFFT stands for Parallel Three-Dimensional Fast Fourier Transforms. It is a library for large-scale computer simulations on parallel platforms. It implements 3D FFT and related algorithms such as Chebyshev transform (an important class of algorithm for simulations in a wide range of fields). P3DFFT uses 2D, or pencil, decomposition. For more i…

License

Notifications You must be signed in to change notification settings

sdsc/p3dfft

Repository files navigation

Title: P3DFFT

Authors: Dmitry Pekurovsky

Copyright (c) 2006-2019 

The Regents of the University of California.

All Rights Reserved.                        

 

    Permission to use, copy, modify and  distribute  any part

    of this software for  educational,  research  and  non-profit

    purposes, by individuals or non-profit organizations,

    without fee,  and  without a written  agreement is

    hereby granted,  provided  that the  above  copyright notice,

    this paragraph  and the following  three  paragraphs appear in

    all copies.       

 

    For-profit organizations desiring to use this software and others

    wishing to incorporate this  software into commercial

    products or use it for  commercial  purposes should contact the:    

          Office of Innovation & Commercialization 

          University of California San Diego

          9500 Gilman Drive,  La Jolla,  California, 92093-0910        

          Phone: (858) 534-5815

          E-mail: innovation@ucsd.edu

 

    IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE

    TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR    

    CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT

    OF THE USE OF THIS SOFTWARE, EVEN IF THE UNIVERSITY OF

    CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH

    DAMAGE.

 

    THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND

    THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE        

    MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 

    THE UNIVERSITY OF CALIFORNIA MAKES NO REPRESENTATIONS AND    

    EXTENDS NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR

    IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

    OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR

    THAT THE USE OF THE MATERIAL WILL NOT INFRINGE ANY PATENT,        

    TRADEMARK OR OTHER RIGHTS.

P3DFFT - Highly scalable parallel 3D Fast Fourier Transforms library

Version 2.7

------------
Features
------------

    * Parallel implementation of 3D FFT with 2D (a.k.a. pencils) data 
decomposition, overcoming an important limitation to scalability of other 
3D FFT libraries implementing 1D, or slab, decomposition.
    * Optimized for parallel communication and single-CPU performance.
    * Uses established libraries (FFTW, ESSL) for underlying local 1D FFT. 
    * Fortran and C interfaces.
    * Pruned input/output options
    * User-defined communicator

The 1D decomposition suffers from the limitation that the number
of processors used cannot be greater than the maximum linear grid size of the 
cubic domain to be processed. With the 2D domain decomposition scheme 
the maximum number of processors is significantly higher, equal to the 
square of the linear grid size. 

This library is especially suited for large-data-volume applications on ultra-scale
parallel platforms. 

------------
Machine requirements
------------

This library is built on top of an externally provided 1D FFT library. 
Current choices are ESSL (for IBM systems) or FFTW. Either one of these 
libraries must be installed on the system in order to use P3DFFT.
The choice of the library is specified at compile time. 

P3DFFT is written in Fortran 90 with MPI. Having an Fortran90/MPI compiler
is essential to building the library on your system. C interface is 
provided. 

P3DFFT currently supports compilation by PGI, Intel, GCC and IBM 
compilers. Additional support for other compilers will be added in the future.


------------
Directory structure
------------

build/
  The library files are contained here. Building the library is required 
  before it can be used. In order to build the library, you must run 
  ./configure from the top level directory. Then type "make" 
  and then "make install". For further instructions
  on building the library see the P3DFFT User Guide, or visit the web site 
  https://github.com/sdsc/p3dfft/wiki/install. You can also see a list of options
  by typing "./configure --help". 
sample/
  This directory has example programs in both FORTRAN and C, in 
  separate subdirectories. Tests provided include
  out-of-place and in-place transforms 3D FFT, with error checking. 
  Also provided is an example of power spectrum calculation. 
  Example programs will be compiled automatically with the library 
  during make. 
include/ 
  The library is provided as a Fortran module. 
  After installation this directory will have p3dfft.mod (for Fortran interface),
  p3dfft.h (the C wrapper/include file), and config.h (header generated by 
  configure script that contains all arguments used when configure script was
  executed).
 
------------
Feedback
------------

Please send your feedback, including bugs and suggestions, to 
Dmitry Pekurovsky, dmitry@sdsc.edu, or open an issue on github 
(https://github.com/sdsc/p3dfft/issues/new). 




About

P3DFFT stands for Parallel Three-Dimensional Fast Fourier Transforms. It is a library for large-scale computer simulations on parallel platforms. It implements 3D FFT and related algorithms such as Chebyshev transform (an important class of algorithm for simulations in a wide range of fields). P3DFFT uses 2D, or pencil, decomposition. For more i…

Resources

License

Stars

Watchers

Forks

Packages

No packages published