1
我的程序中运行之间的结果略有不同。它使用与FFTW_ESTIMATE
标志一起计划的多线程FFTW。是多线程FFTW确定性的:是多线程FFTW确定性
- 对于固定数量的线程?
- 在不同运行时使用的不同线程数之间?
FFTW常见问题解答说,FFTW_ESTIMATE
标志导致在运行之间使用相同的算法,但它没有明确说它在多线程情况下是确定性的。
我的程序中运行之间的结果略有不同。它使用与FFTW_ESTIMATE
标志一起计划的多线程FFTW。是多线程FFTW确定性的:是多线程FFTW确定性
FFTW常见问题解答说,FFTW_ESTIMATE
标志导致在运行之间使用相同的算法,但它没有明确说它在多线程情况下是确定性的。
的FFTW文档:
http://www.fftw.org/fftw3_doc/Thread-safety.html#Thread-safety
规定,只有fftw_execute
是折返。所以很难说没有关于您的使用情况的更多信息。另外:
“如果你配置了--enable-调试或--enable-调试的malloc标志(见UNIX安装)FFTW,然后fftw_execute是不是线程安全的这些标志没有记录,因为他们仅用于开发和调试FFTW,但是如果您必须使用--enable-debug,则还应该特别将fdtw_execute的--disable-debug-malloc传递为线程安全。“
我的程序本身不是多线程的。我正在使用多线程FFTW(通过在创建计划之前调用'fftwf_plan_with_nthreads'函数)。 – user2052436
您是否尝试过使用nthreads将线程数设置为1比较普通计划和计划的结果? – Sebastien
是的,得到同样的答案。我在我的代码中发现了一个错误。现在我总是得到相同的结果。仍然想确认多线程FFTW是确定性的... – user2052436