According to FFTW document:
Starting from FFTW-3.3.5, FFTW supports a new API to make the planner thread-safe:
void fftwmakeplannerthreadsafe(void);
This call installs a hook that wraps a lock around all planner calls.
To use fftw_make_planner_thread_safe()
API, you need to add --enable-threads
in configuration stage:
$ ./configure --enable-threads
$ make
$ sudo make install
There will be two additional libraries (libfftw3_threads.a
and libfftw3_threads.la
) generated compared with no --enable-threads
option:
$ cd /usr/local/lib/
$ ls -alt libfftw*
-rw-r--r-- 1 root root 44528 Jan 16 09:18 libfftw3_threads.a
-rwxr-xr-x 1 root root 946 Jan 16 09:18 libfftw3_threads.la
-rw-r--r-- 1 root root 2222828 Jan 16 09:18 libfftw3.a
-rwxr-xr-x 1 root root 886 Jan 16 09:18 libfftw3.la
BTW, although fftw_make_planner_thread_safe()
API was introduced in FFTW-3.3.5
, it didn’t really work until FFTW-3.3.6
who contains an important patch. Please refer the discussion and release note.