首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyFFTW多线程不工作

PyFFTW多线程不工作
EN

Stack Overflow用户
提问于 2015-04-09 09:40:42
回答 1查看 1.7K关注 0票数 0

我正在为PyFFTW库运行基于FFTW3包装器的代码。在PyFFTW的计划函数调用中,有一个参数“线程”来指定要使用的线程数。我使用一个基本的判断,Activity,来判断多线程是否有效。事实证明,即使我指定了thread=4,以下代码也在一个CPU上运行。我的笔记本电脑是一个有8个核心的Mac。这是我的密码。

代码语言:javascript
复制
import pyfftw
n_cpu = 4
flags = ('FFTW_MEASURE','FFTW_DESTROY_INPUT')
x_buffer = pyfftw.n_byte_align_empty((8192,8192,), 16, 'complex128')
f_buffer = pyfftw.n_byte_align_empty((8192,8192,), 16, 'complex128')
fftObj  = pyfftw.FFTW(x_buffer, f_buffer,  axes=(-2,-1), direction='FFTW_FORWARD',  flags=flags, thread=n_cpu)
fftObj()

当我运行fftObj()时,计算机似乎运行在一个CPU上(CPU使用率为99%,而预期为400%)。我想要的是让FFT任务分布在我的笔记本电脑上的CPU中。

除了尝试pyfftw之外,我还尝试用OpenMP用C编写了一些其他代码,我从Activity中看到,CPU使用率超过了100%。这意味着C代码运行在多个CPU上,而我的机器确实具有多核特性。

有什么是我错过了打开皮夫特的多线程吗?还是我误解了参数的含义?

有一个相关问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-10 06:40:36

论点是threads而不是thread。多余的和无效的论点也许应该被采纳。想想看在github上留下一个问题

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29534959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档