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 (
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.