单线程Qaud内核与超线程双内核[重复]


10

假设我们有两个CPU,一个是具有4个内核的Quad Core 3.2 Ghz,另一个是具有2个内核且每个内核具有2个线程的Dual Core 3.2 Ghz(超线程)。我作为程序员的假设是,4个核心4个线程的执行速度应比2个核心4个线程的执行速度快,因为第二个CPU需要在线程之间进行切换以模拟4个核心,而第一个CPU不需要每个都执行这种切换核心可以独立和独立执行。

我想确认我的假设是正确的,如果不正确,请解释为什么一个比另一个更好。


3
拒绝投票,是因为简短的Google搜索(维基百科)会给出答案。
Werner Henze 2013年

4
@WernerHenze,虽然您的说法是正确的,但我们希望人们在使用Google之类的东西时看到SuperUser的结果:)
Shekhar 2013年

Answers:


10

我确实是真的-由于超线程确实共享某些元素-特别是主要执行资源,因此您将能够一次运行4个完整线程,而不必等待这些资源被释放。

HT的要点是在较小的裸片面积上获得更好的性能-您的四核通常是更大的芯片-比非HT双核芯片大几乎两倍,而HT双核芯片大约是非HT双核芯片的两倍。大5%。在适当的工作负载下,四核处理器的速度最高可提高两倍(不过,这是不可能的,因为在大多数情况下,您可能不会以最大容量运行4个线程),而双核HT处理器的速度则提高了15-30%性能(根据Wikipedia)比双核非HT处理器高。

通常,实际内核越多越好。


1
HT处理器将看到15-30%...他们在这里关键。HT不能替代真正的第二核(或2或4等)
Austin T French

1
更多的CPU,更多的内核,超线程会更好...:D
Keltari 2013年

重要的是要注意,使用HT改善性能的最大原因是CPU很少满载。也就是说,一个线程很少会在每个CPU周期处理数据。HT允许CPU在其他未使用的周期内调度第二个线程。对于在Facebook和电子邮件之间进行切换,这可能非常有效,但是每个线程占用的CPU越多,性能提升将越低。
托马斯

1

维基百科

超线程通过复制处理器的某些部分(存储体系结构状态的部分)来工作,但不复制主要执行资源。这使超线程处理器可以作为主机操作系统的常规“物理”处理器和额外的“逻辑”处理器出现(不了解HTT的操作系统请参阅两个“物理”处理器),从而允许操作系统调度两个线程或同时适当地处理。如果没有超线程,处理器中的当前任务将无法使用执行资源,尤其是在处理器停顿时,配备超线程的处理器可以使用那些执行资源来执行另一个计划任务。(处理器可能由于缓存未命中,分支预测错误而停顿,

如果您有四核系统,则可以在一个完整核上运行4个线程。如果您有一个双核超线程系统,那么两个线程可以在一个完整的内核上运行,但是如果有4个线程,则线程1和2将共享一个内核,而线程3和4将共享另一个内核。如果两个线程不使用相同的处理器资源,则超线程允许两个线程并行运行(仅)。因此,在理想情况下,您可能会获得高度的并行化,但是正如Wikipedia所述,性能提升不是100%,而是15-30%。


1

在超线程中,任务A的内核的空闲时间(所述内核可能已经向磁盘发送了数据请求,等待磁盘搜索磁盘区域,读取数据并将其发送回内核)被利用来执行另一个任务B. 因此,当任务2由所谓的线程2提供服务,并且如果任务A的数据获取请求完成时,任务A仍必须等待内核完成线程2。两个线程不能在一个内核中同时执行。同样,HT利用了内核/处理器与计算机中各个子系统之间的速度不匹配。HT将您的核心发挥到最大容量...就像完全利用容量一样。因此,如果在浏览器中打开四个选项卡,则每个选项卡将在4核心系统中具有一个核心,而两个选项卡将必须在2核心系统中共享一个核心。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.