2

假设我有一个由两个理想独立任务组成的进程(理想情况下,以消除通信开销)。在 3GHz 速度的单核处理器或 1.5GHz 速度的双核处理器上执行它会更快吗?

当然,在双核处理器的情况下,这项工作是并行化的理想选择。而对于单核,这两个任务将分时完成。

更新: 换句话说,问题

速度翻倍的单核处理器总是比双核处理器更好的选择?

4

2 回答 2

3

由于消除了线程上下文切换开销,理想情况下,在 Windows 2012 等非理想操作系统上运行的独立 2 个任务将在 1.5GHz 的 2 个内核上运行比在 3GHz 的 1 个内核上运行得更快。

不幸的是,理想的独立任务很少。

于 2016-03-07T16:31:22.787 回答
2

发布的问题严重不足。首先,它似乎将性能与处理器频率混淆了。即使使用相同的核心微架构,内存延迟在循环计数中也不是固定的。遍历十亿项链表是一个(人为的)工作负载,它依赖于内存延迟,其中两个并行的“半速”线程将比时间切片更快。

如果较低频率不是产品合并、节能配置等的结果,而是来自较浅的流水线(相同宽度),那么“较慢”的处理器将具有较低的分支误预测惩罚和较低的延迟循环到相同的缓存容量,导致大多数工作负载每个周期的指令更高。

即使使用相同的微架构,两个内核也将避免缓存预热上下文切换开销。上下文切换的成本不仅仅是调用操作系统、运行操作系统调度程序所花费的时间(两个内核上只有两个活动线程,操作系统调度程序的开销会稍微低一些,因为没有其他准备好的线程,但是会有两倍的定时器中断)和交换寄存器内容。(如果以批处理模式运行,则可以避免这种上下文切换开销。)

另一个需要考虑的因素是这两个任务是否遇到独立的瓶颈。例如,如果一项任务是计算密集型任务,而另一项任务受主内存带宽的限制,那么并行运行它们可以提供比时间切片更好的性能;通过时间片,内存带宽潜力在计算密集型时间片期间未被使用。

还有一个因素是对受限资源的干扰。例如,DRAM 可能会遭受库冲突,这会大大降低有效带宽。如果内存寻址和时序在并行操作过程中发生最大冲突,那么有效带宽就会减少。类似的效果可以从共享的最后一级缓存中的有限关联性产生。

较新的处理器也往往受到热限制,因此如果在电源病毒条件下不能保证该频率,则双频处理器可能无法在最大利用率下维持该频率,而替代的双核系统可能不会遇到那个功率密度限制。

于 2016-03-07T21:03:34.910 回答