我应该禁用超线程吗?

我有一个大的工作,我正在试验的拓扑结构,看看什么给更好的结果(玩ntasksncores-per-cpunodes等)我使用slurm作为我的工作队列pipe理器。

我有两个节点(CentOS 7,使用Bright 7pipe理),每个都有2x Intel(R)Xeon(R)CPU E5-2680 v3 @ 2.50GHz。 所以,两个12核心处理器,所有超线程,所以我似乎有48个核心每个节点。 (请参阅下面的lstopo给出的处理器拓扑)

我的问题: 我应该禁用BIOS中的超线程,或尝试禁用SLURM? 或者只是对待我的系统,就像我有两倍的核心? 指定--thread-per-core=1似乎没有效果。

我的工作是一个很大的环境模型,大量的I / O,大量的matrix计算等等,并且现在运行几天。

我一直在阅读SLURM常见问题解答 ,但我仍然困惑如何继续。

显示NUMA空间的处理器拓扑

基本上,如果您觉得您的操作可以从HT禁用时更自由的L2 / L3caching中受益,请继续并禁用BIOS中的HT。

但是,如果有大量可以并行运行的小型操作,那么您肯定会从启用HT来获益。

VMWare ESXi和超线程

http://lifehacker.com/how-hyper-threading-really-works-and-when-its-actuall-1394216262

Slurm按内核分配,SLURM被devise为可移植性而不是性能。 所以它分配的方式是“请注意,即使在启用超线程的系统上,资源通常也会分配给核心级别的作业(参见下面的注释),两个不同的作业将不共享一个核心。 它确实知道超线程是什么,它可以被启用,但它专门看每个sockets的核心。 它是开源的,我确定一个超线程优化是有序的。