2013-11-25 168 views
1

我的程序中運行之間的結果略有不同。它使用與FFTW_ESTIMATE標誌一起計劃的多線程FFTW。是多線程FFTW確定性的:是多線程FFTW確定性

  1. 對於固定數量的線程?
  2. 在不同運行時使用的不同線程數之間?

FFTW常見問題解答說,FFTW_ESTIMATE標誌導致在運行之間使用相同的算法,但它沒有明確說它在多線程情況下是確定性的。

回答

1

的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傳遞爲線程安全。「

+0

我的程序本身不是多線程的。我正在使用多線程FFTW(通過在創建計劃之前調用'fftwf_plan_with_nthreads'函數)。 – user2052436

+0

您是否嘗試過使用nthreads將線程數設置爲1比較普通計劃和計劃的結果? – Sebastien

+0

是的,得到同樣的答案。我在我的代碼中發現了一個錯誤。現在我總是得到相同的結果。仍然想確認多線程FFTW是確定性的... – user2052436