user2052436
user2052436

Reputation: 4765

Is multithreaded FFTW deterministic

I am getting slightly different results between runs in my program. It uses multi-threaded FFTW planned with FFTW_ESTIMATE flag. Is multi-threaded FFTW deterministic:

  1. For fixed number of threads?
  2. Between different numbers of threads used at different runs?

FFTW faq says, that FFTW_ESTIMATE flag results in same algorithm used between runs, but it does not explicitly say that it is deterministic in multi-threaded case.

Upvotes: 1

Views: 321

Answers (1)

Sebastien
Sebastien

Reputation: 1476

The fftw documentation:

http://www.fftw.org/fftw3_doc/Thread-safety.html#Thread-safety

stipulates that only fftw_execute is reentrant. So it's hard to say without more info about your usage. Also:

"If you are configured FFTW with the --enable-debug or --enable-debug-malloc flags (see Installation on Unix), then fftw_execute is not thread-safe. These flags are not documented because they are intended only for developing and debugging FFTW, but if you must use --enable-debug then you should also specifically pass --disable-debug-malloc for fftw_execute to be thread-safe."

Upvotes: 1

Related Questions