首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多线程处理对多芯还是单芯双倍速度?

多线程处理对多芯还是单芯双倍速度?
EN

Stack Overflow用户
提问于 2016-03-07 16:25:51
回答 2查看 494关注 0票数 2

假设我有一个由两个(理想情况下是独立的任务)组成的流程(理想情况下,消除通信开销)。在3 3GHz的单核处理器上,还是在1.5GHz的双核处理器上,这样做会更快吗?

当然,在双核处理器的情况下,工作是理想的对位.对于单一核心,这两项任务将是共享的。

更新:问题,换句话说,

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-07 16:31:22

理想情况下,在像Windows 2012这样的不理想操作系统上运行的两个任务在1.5GHz的两个核上的运行速度将比在3 3GHz的一个核心上运行的更快,这是因为消除了线程上下文切换开销。

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

票数 3
EN

Stack Overflow用户

发布于 2016-03-07 21:03:34

张贴的问题被严重低估了。首先,它似乎混淆了性能和处理器频率。即使使用相同的核心微体系结构,内存延迟在周期计数中也不是固定的。遍历10亿个项目链接列表是一个(人为的)工作负载,它依赖于内存延迟,其中两个并行的“半速”线程比时间切片更快。

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

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

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

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35848840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档