FFTW

From HP-SEE Wiki

Revision as of 15:01, 5 August 2011 by Antun (Talk | contribs)
Jump to: navigation, search

Contents


Authors/Maintainers

  • The FFTW package was developed at MIT by Matteo Frigo and Steven G. Johnson.

Summary

The Fastest Fourier Transform in the West (FFTW) is a comprehensive collection of C routines for computing the discrete Fourier transform (DFT) and its various special cases. According to the benchmarks publicly available on the Internet, FFTW is faster than other FFT implementations available, even those which are vendor-tuned (http://www.fftw.org/benchfft/). To achieve this performance, FFTW uses special self-optimization techniques, such that it learns the fastest way to compute on a specific hardware. This task is performed by a planner that produces a data structure containing the information needed to achieve best possible performance. FFTW computes complex, real, symmetric, multidimensional and parallel transforms, and it can also handle arbitrary array sizes efficiently. FFTW received the 1999 J. H. Wilkinson Prize for Numerical Software, which is awarded every four years to the software that "best addresses all phases of the preparation of high quality numerical software." FFTW is probably the most flexible discrete Fourier transformation (DFT) package available.

Features

  • Written in C, making it portable and running well on many architectures and operating systems;
  • Has interfaces for both C and Fortran;
  • Does not have any limitation to the dimension (rank) of a transform;
  • Supports multiple-strides DFTs;
  • Supports the discrete cosine transforms and discrete sine transforms;
  • Adapts to the hardware it runs on;
  • Supports parallel transforms (pthreads, OpenMP, and, as of this version, MPI).

Architectural/Functional Overview

Usage Overview

Dependencies

  • Should be compiled with the same compiler used to compile the application. Cross-linking is possible, but might affect the performance.
  • If parallel transforms are to be used, the appropriate parallel libraries (OpenMP, MPI) should be installed.

HP-SEE Applications

  • NUQG (Numerical study of ultra-cold quantum gases)

Resource Centers

  • BG, BG
  • HPCG, BG
  • IFIN_Bio, RO
  • NCIT-Cluster, RO
  • NIIFI SC, HU
  • PARADOX, RS

Usage by Other Projects and Communities

  • FFTW is very widely used by innumerable communities, since it provides essential mathematical capability vital for many algorithms.

Recommendations for Configuration and Usage

Please describe here any common settings, configurations or conventions that would make the usage of this resource (library or tool) more interoperable or scalable across the HP-SEE resources. These recommendations should include anything that is related to the resource and is agreed upon by administrators and users, or across sites and applications. These recommendations should emerge from questions or discussions opened by site administrators or application developers, at any stage, including installation, development, usage, or adaptation for another HPC centre.

Provided descriptions should describe general or site specific aspects of resource installation, configuration and usage, or describe the guidelines or convention for deploying or using the resource within the local (user/site) or temporary environment (job). Examples are:

  • Common configuration settings of execution environment
  • Filesystem path or local access string
  • Environment variables to be set or used by applications
  • Options (e.g. additional modules) that are needed or required by applications and should be present
  • Minimum quantitative values (e.g. quotas) offered by the site
  • Location and format of some configuration or usage hint instructing applications on proper use of the resource or site specific policy
  • Key installation or configuration settings that should be set to a common value, or locally tweaked by local site admins
  • Conventions for application or job bound installation and usage of the resource