【发布时间】:2013-11-25 16:31:51
【问题描述】:
我在我的程序中运行时得到的结果略有不同。它使用带有FFTW_ESTIMATE 标志的多线程FFTW。多线程 FFTW 是确定性的:
- 对于固定数量的线程?
- 在不同运行中使用不同数量的线程之间?
FFTW 常见问题解答说,FFTW_ESTIMATE 标志导致运行之间使用相同的算法,但它没有明确说明它在多线程情况下是确定性的。
【问题讨论】:
标签: multithreading fftw deterministic
我在我的程序中运行时得到的结果略有不同。它使用带有FFTW_ESTIMATE 标志的多线程FFTW。多线程 FFTW 是确定性的:
FFTW 常见问题解答说,FFTW_ESTIMATE 标志导致运行之间使用相同的算法,但它没有明确说明它在多线程情况下是确定性的。
【问题讨论】:
标签: multithreading fftw deterministic
fftw 文档:
http://www.fftw.org/fftw3_doc/Thread-safety.html#Thread-safety
规定只有fftw_execute 是可重入的。因此,如果没有有关您的使用情况的更多信息,很难说。另外:
"如果您使用 --enable-debug 或 --enable-debug-malloc 标志配置 FFTW(请参阅 Unix 上的安装),则 fftw_execute 不是线程安全的。这些标志没有记录,因为它们仅用于用于开发和调试 FFTW,但如果必须使用 --enable-debug 则还应特别传递 --disable-debug-malloc 以使 fftw_execute 成为线程安全的。"
【讨论】:
fftwf_plan_with_nthreads 函数)。