【问题标题】:what software can take full advantage of hyperthreading?什么软件可以充分利用超线程?
【发布时间】:2015-04-10 13:11:09
【问题描述】:

我想知道必须有哪些软件才能充分利用超线程?假设我有 4 个物理内核的英特尔 CPU。使用超线程,CPU 似乎有 8 个内核给知道 HT 技术的操作系统。所以这意味着操作系统可以将两个独立的线程寻址到一个内核。所以这意味着cpu可以运行8个线程控制100%并行划分每个核心2个线程?但是,一个内核可以有多个程序计数器吗?


那么如果上面这句话是真的,那就意味着要充分利用带有 HTT 的 4 核 cpu,软件至少必须有 8 个编程控制线程?

【问题讨论】:

  • 如果有不清楚的地方请要求澄清,但不要无缘无故投反对票......
  • 我没有投反对票,但问题并不清楚 - 为什么你对一个操作系统可以同时拥有 8 个不同的线程(甚至可能来自 8 个不同的进程)感到惊讶?
  • 好吧,我说的软件不是操作系统,而是应用程序(Photoshop、Chrome、firefox...),所以为了最大限度地提高性能和 cpu 工作,这些应用程序至少需要 8 个线程?
  • 为了最大化 他们的 性能 - 是的,假设它们可以并行化(不是所有东西都可以)。对于整体系统性能 - 只需运行 8 个应用程序

标签: multithreading performance operating-system cpu-architecture hyperthreading


【解决方案1】:

一个核心确实一次只能运行一个线程。但是在运行该线程时,它可能会在等待某些东西时遇到空闲时间,例如。从 RAM 加载代码或数据(RAM 比 CPU 慢得多)或等待特定电路 (FPU) 的计算。触发调度程序不是一个选项,因为这需要一个上下文切换(与 RAM 相比)非常慢。使用 HT,它不会等待,而是切换到第二个准备好的线程。

一个内核如何拥有多个程序计数器?好吧,它只有两组所有寄存器。

【讨论】:

  • 我不太明白您所说的“触发调度程序不是一个选项,因为它需要一个(与 RAM 相比)非常慢的上下文切换”是什么意思。你的意思是上下文切换比从 RAM 加载数据到缓存然后注册慢吗?
  • 你知道每个操作消耗多少时间吗? context-swith:1毫秒,访问RAM; 100ns??? + 一些额外的时间将其加载到缓存
  • 访问 RAM 的成本高达其频率的反转,因此它具有 1066 MHz,所需时间不到 1 µs。上下文切换需要几千个周期(根据this comment,大约需要 4,900 个),这将在 5 GHz 内核上产生 1 µs,而在较慢的内核上则按比例增加。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多