0

此报价来自FFTW 手册

[...] 第三,在创建要并行化的计划之前,您应该调用:

void fftw_plan_with_nthreads(int nthreads);

nthreads 参数表示您希望 FFTW 使用的线程数(或者实际上是最大数)。[...]

使用 OpenMP,要将 FFTW 配置为使用所有当前正在运行的 OpenMP 线程(由 omp_set_num_threads(nthreads) 或 OMP_NUM_THREADS环境变量设置),您可以这样做 :) fftw_plan_with_nthreads(omp_get_num_threads()

我认为最后一个命令是错误的。应该是fftw_plan_with_nthreads(omp_get_max_threads())omp_get_num_threads()将返回当前线程数。但这可能是1因为有人在一个线程上创建 fftw_plan。omp_get_num_threads()不会返回 的值OMP_NUM_THREADS并且不是 的倒数omp_set_num_threads(nthreads)

我是对的还是我误解了 FFTW 或 OpenMP API?

4

0 回答 0