Parallel processing omp应用程序windows 7与centos的超读行为

Parallel processing omp应用程序windows 7与centos的超读行为,parallel-processing,openmp,utilization,Parallel Processing,Openmp,Utilization,我试图调和omp代码在两个具有超线程的不同系统上运行的方式所观察到的差异。System 1是采用Centos 5.4的Intel Xeon X5680(12个物理处理器/24个逻辑处理器)。System 2是采用Windows 7的Intel Xeon E5645(6个物理处理器/12个逻辑处理器) 该代码具有高度的并行性,可以很好地利用每个线程 我首先在system 1上运行了该代码,该代码演示了增加线程的标准加速,直到线程数超过物理核心数。在超过物理内核的数量后,加速变得不一致,并且小于我使

我试图调和omp代码在两个具有超线程的不同系统上运行的方式所观察到的差异。System 1是采用Centos 5.4的Intel Xeon X5680(12个物理处理器/24个逻辑处理器)。System 2是采用Windows 7的Intel Xeon E5645(6个物理处理器/12个逻辑处理器)

该代码具有高度的并行性,可以很好地利用每个线程

我首先在system 1上运行了该代码,该代码演示了增加线程的标准加速,直到线程数超过物理核心数。在超过物理内核的数量后,加速变得不一致,并且小于我使用12个线程实现的峰值加速。起初,我发现这种行为是有意义的,假设12个线程完全利用了12个物理处理器,而额外的线程没有帮助,因为前12个线程完全利用了物理处理器

然后,我在System2上运行,它演示了如何将速度提高到12个线程(是物理处理器数量的两倍)。我发现这令人费解,因为当我超过了物理处理器的数量时,我希望加速停止。然后,我检查了一个有6个线程的运行,发现每个线程都被限制为半个物理处理器——而充分利用物理处理器的唯一方法是启动12个线程

所以我想我的问题是,为什么系统1允许单个超线程充分利用物理处理器,而系统2将超线程的利用率限制为物理处理器的50%呢?也许这是一个配置选项


感谢您的回复。

根据[X5680][1],我们的内核和线程与[E5645][2]相同。时钟速度是不同的,因此我建议您仔细研究这两种结构[1]:[2]