使用OpenMP进行奇怪的加速

时间:2017-05-09 14:27:34

标签: c++ multithreading openmp hyperthreading

我在测试OpenMP时遇到了一些奇怪的结果。作为测试用例,我总结了两个浮点数向量,这个问题应该是完全可并行化的。

对于具有超线程的四核CPU足够大的向量,这实际上意味着我应该有4x2独立线程,从单线程执行到双线程执行几乎可以获得完美的第二因素加速。如果我从4个线程到8个线程,相对加速因子2,也是如此。

然而,我几乎没有加速从2到4个线程。我可以理解它是否发生在从4到8个线程的过渡期间,可能是因为将两个逻辑线程推入一个物理内核的超线程技术并不完美。但在这个中间阶段,我觉得很奇怪。

我很感激任何想法!

0 个答案:

没有答案