【发布时间】:2012-05-22 20:10:59
【问题描述】:
我是统计模式识别方面的研究员,我经常运行运行了很多天的模拟。我正在运行带有 Linux 3.2.0-24-generic 的 Ubuntu 12.04,据我所知,它支持多核和超线程。使用带有 HTT 的 Intel Core i7 Sandy Bridge Quadcore,我经常同时运行 4 个模拟(需要很长时间的程序)。在我提出问题之前,以下是我已经(认为我)知道的事情。
- 由于超线程,我的操作系统 (Ubuntu 12.04) 检测到 8 个 CPU。
- 我的操作系统中的调度程序非常聪明,绝不会调度两个程序在属于同一物理内核的两个逻辑(虚拟)内核上运行,因为操作系统支持 SMP(同时多线程)。
- 我已阅读有关超线程的 Wikipedia 页面。
- 我已阅读 Sandy Bridge 上的 HowStuffWorks 页面。
好的,我的问题如下。当我在我的计算机上同时运行 4 个模拟(程序)时,它们每个都在一个单独的物理内核上运行。然而,由于超线程,每个物理核心被分成两个逻辑核心。因此,每个物理内核是否只使用其全部容量的一半来运行我的每个模拟?
提前非常感谢您。如果我的问题的任何部分不清楚,请告诉我。
【问题讨论】:
-
通常您可以在 BIOS 中关闭超线程。说 1/2 是不正确的,因为它可能会为每个排队。需要在打开和关闭超线程的情况下运行一些测试。我做了一些解析和匹配,我发现超标题关闭和与核心一样多的进程是最佳的,但你需要测试你的计算。
-
您说您阅读的此链接清楚地描述了 HT 和性能。它清楚地表明核心在 HT 模式下不使用其容量的 1/2。 en.wikipedia.org/wiki/Hyper_threading -1
-
感谢 Blam 的帮助。关于您的第二条评论,您能否指出维基百科页面上的哪个位置说核心在 HT 模式下未使用其容量的 1/2?
-
超线程通过复制处理器的某些部分(存储架构状态的部分)来工作,但不复制主要的执行资源。
标签: hyperthreading