fftw3: Installation and Supported Hardware/Software

 
 5.1 Installation and Supported Hardware/Software
 ================================================
 
 All of the FFTW threads code is located in the 'threads' subdirectory of
 the FFTW package.  On Unix systems, the FFTW threads libraries and
 header files can be automatically configured, compiled, and installed
 along with the uniprocessor FFTW libraries simply by including
 '--enable-threads' in the flags to the 'configure' script (See
 Installation on Unix), or '--enable-openmp' to use OpenMP
 (http://www.openmp.org) threads.
 
    The threads routines require your operating system to have some sort
 of shared-memory threads support.  Specifically, the FFTW threads
 package works with POSIX threads (available on most Unix variants, from
 GNU/Linux to MacOS X) and Win32 threads.  OpenMP threads, which are
 supported in many common compilers (e.g.  gcc) are also supported, and
 may give better performance on some systems.  (OpenMP threads are also
 useful if you are employing OpenMP in your own code, in order to
 minimize conflicts between threading models.)  If you have a
 shared-memory machine that uses a different threads API, it should be a
 simple matter of programming to include support for it; see the file
 'threads/threads.c' for more detail.
 
    You can compile FFTW with _both_ '--enable-threads' and
 '--enable-openmp' at the same time, since they install libraries with
 different names ('fftw3_threads' and 'fftw3_omp', as described below).
 However, your programs may only link to _one_ of these two libraries at
 a time.
 
    Ideally, of course, you should also have multiple processors in order
 to get any benefit from the threaded transforms.