Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 多线程FFTW是确定性的吗_Multithreading_Fftw_Deterministic - Fatal编程技术网

Multithreading 多线程FFTW是确定性的吗

Multithreading 多线程FFTW是确定性的吗,multithreading,fftw,deterministic,Multithreading,Fftw,Deterministic,在我的程序中,两次运行的结果略有不同。它使用带有FFTW\u ESTIMATE标志的多线程FFTW。多线程FFTW是否具有确定性: 对于固定数量的线程 在不同运行时使用的不同线程数之间 FFTW faq说,FFTW\u ESTIMATE标志会导致在运行之间使用相同的算法,但并没有明确说明它在多线程情况下是确定性的。FFTW文档: 规定只有fftw\u execute是可重入的。因此,如果没有更多关于您使用的信息,很难说。此外: “如果使用--enable debug或--enable debu

在我的程序中,两次运行的结果略有不同。它使用带有
FFTW\u ESTIMATE
标志的多线程FFTW。多线程FFTW是否具有确定性:

  • 对于固定数量的线程
  • 在不同运行时使用的不同线程数之间

  • FFTW faq说,
    FFTW\u ESTIMATE
    标志会导致在运行之间使用相同的算法,但并没有明确说明它在多线程情况下是确定性的。

    FFTW文档:

    规定只有
    fftw\u execute
    是可重入的。因此,如果没有更多关于您使用的信息,很难说。此外:


    “如果使用--enable debug或--enable debug malloc标志配置FFTW(请参阅Unix上的安装),则fftw_execute不是线程安全的。这些标志没有文档记录,因为它们仅用于开发和调试fftw,但如果必须使用--enable debug,则还应特别传递--disable debug malloc,以便fftw_execute是线程安全的。”

    fftw文档:

    规定只有
    fftw\u execute
    是可重入的。因此,如果没有更多关于您使用的信息,很难说。此外:


    “如果使用--enable debug或--enable debug malloc标志配置FFTW(请参阅Unix上的安装),则fftw_execute不是线程安全的。这些标志没有文档记录,因为它们仅用于开发和调试fftw,但如果必须使用--enable debug,则还应特别传递--disable debug malloc,以便fftw_execute是线程安全的。”

    我的程序本身不是多线程的。我正在使用多线程FFTW(在创建计划之前,通过调用
    fftwf\u plan\u with\u nthreads
    函数)。您是否尝试过比较普通计划与计划的结果,并将线程数设置为1?是的,得到了相同的答案。我在代码中发现了一个bug。现在我总是得到同样的结果。仍然希望确认多线程FFTW是确定性的…只要您没有使用--enable debug或--enable debug malloc(请参阅我的答案)进行编译,您就可以了。我的程序本身不是多线程的。我正在使用多线程FFTW(在创建计划之前,通过调用
    fftwf\u plan\u with\u nthreads
    函数)。您是否尝试过比较普通计划与计划的结果,并将线程数设置为1?是的,得到了相同的答案。我在代码中发现了一个bug。现在我总是得到同样的结果。仍然希望确认多线程FFTW是确定性的……只要您没有使用--enable debug或--enable debug malloc(请参阅我的答案)进行编译,您就不会有问题。