假设我们有两个CPU,一个是具有4个内核的Quad Core 3.2 Ghz,另一个是具有2个内核且每个内核具有2个线程的Dual Core 3.2 Ghz(超线程)。我作为程序员的假设是,4个核心4个线程的执行速度应比2个核心4个线程的执行速度快,因为第二个CPU需要在线程之间进行切换以模拟4个核心,而第一个CPU不需要每个都执行这种切换核心可以独立和独立执行。
我想确认我的假设是正确的,如果不正确,请解释为什么一个比另一个更好。
假设我们有两个CPU,一个是具有4个内核的Quad Core 3.2 Ghz,另一个是具有2个内核且每个内核具有2个线程的Dual Core 3.2 Ghz(超线程)。我作为程序员的假设是,4个核心4个线程的执行速度应比2个核心4个线程的执行速度快,因为第二个CPU需要在线程之间进行切换以模拟4个核心,而第一个CPU不需要每个都执行这种切换核心可以独立和独立执行。
我想确认我的假设是正确的,如果不正确,请解释为什么一个比另一个更好。
Answers:
我确实是真的-由于超线程确实共享某些元素-特别是主要执行资源,因此您将能够一次运行4个完整线程,而不必等待这些资源被释放。
HT的要点是在较小的裸片面积上获得更好的性能-您的四核通常是更大的芯片-比非HT双核芯片大几乎两倍,而HT双核芯片大约是非HT双核芯片的两倍。大5%。在适当的工作负载下,四核处理器的速度最高可提高两倍(不过,这是不可能的,因为在大多数情况下,您可能不会以最大容量运行4个线程),而双核HT处理器的速度则提高了15-30%性能(根据Wikipedia)比双核非HT处理器高。
通常,实际内核越多越好。
从维基百科:
超线程通过复制处理器的某些部分(存储体系结构状态的部分)来工作,但不复制主要执行资源。这使超线程处理器可以作为主机操作系统的常规“物理”处理器和额外的“逻辑”处理器出现(不了解HTT的操作系统请参阅两个“物理”处理器),从而允许操作系统调度两个线程或同时适当地处理。如果没有超线程,处理器中的当前任务将无法使用执行资源,尤其是在处理器停顿时,配备超线程的处理器可以使用那些执行资源来执行另一个计划任务。(处理器可能由于缓存未命中,分支预测错误而停顿,
如果您有四核系统,则可以在一个完整核上运行4个线程。如果您有一个双核超线程系统,那么两个线程可以在一个完整的内核上运行,但是如果有4个线程,则线程1和2将共享一个内核,而线程3和4将共享另一个内核。如果两个线程不使用相同的处理器资源,则超线程允许两个线程并行运行(仅)。因此,在理想情况下,您可能会获得高度的并行化,但是正如Wikipedia所述,性能提升不是100%,而是15-30%。