新手线程问题(FFTW)

时间:2009-07-06 23:17:05

标签: c multithreading time fftw

我正在使用FFTW的螺纹版本(FFT库)来尝试加速双CPU机器上的某些代码。 这是时间输出w /只有1个线程:

131.838u 1.979s 2:13.91 99.9%

这里有两个主题:

166.261u 30.392s 1:52.67 174.5%

用户时间和CPU负载百分比似乎表明它正在非常有效地进行线程化,但是挂钟时间(这是我真正关心的)告诉我(我认为)它需要花费大约28秒来处理与线程。这是描述情况的准确方法吗?如果是这样,它是否相当正常,或者我可能有错误的配置? 感谢任何光明。

1 个答案:

答案 0 :(得分:4)

我已经使用了相当数量的FFTW,并且发现,除非你要使用两个以上的处理器,否则使用单线程版本几乎总是一个更干净的解决方案。它更快,因为线程间通信较少,或者至少,这是我的经验。

要检查的一些事项:

  1. 您是否正确配置智慧并使用它?智慧一旦被创造,将使你的变换运行得更快。如果你没有使用它,你应该是。
  2. 您是从一个线程还是两个线程调用库?这总是我的问题,将多个线程调用锁定到库中会变得很痛苦。
  3. 你的变形有多大?你是在尝试一个小的,只是为了看它是怎么回事,然后扩大规模?