首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的pc偏爱偶数编号的内核?

为什么我的pc偏爱偶数编号的内核?
EN

Stack Overflow用户
提问于 2021-02-03 00:57:44
回答 1查看 78关注 0票数 0

我的pc配备了支持虚拟化的第10代酷睿i7 vPRO。8个内核+8个虚拟内核。(i7-10875H,彗星湖)

每个物理核心被拆分成对,因此核心1托管虚拟核心0和1,核心2托管虚拟核心2和3。我注意到在任务管理器中,从使用率较高的情况来看,每个核心对的第一项似乎是首选核心。我确实为某些繁重的程序手动设置了一些亲和力,但我总是将它们设置为4个一组,从0-3,4-7,8-11,12-15,并且从不不匹配不同的逻辑处理器。

我想知道为什么会发生这种情况--偶数核是否等同于物理核,后者可能会稍微快一点?如果是这样的话,如果我运行的程序线程数不高,在没有虚拟化的情况下,我的时钟速度会稍微快一些吗?

EN

回答 1

Stack Overflow用户

发布于 2021-02-03 04:13:12

一般而言(对于“调度器理论”):

  • 如果您关心性能,请尽可能将任务分散到多个物理核心中。这可以防止出现"2个任务运行较慢,因为它们共享一个物理核心,而整个物理核心处于空闲状态“的情况。

  • 如果您关心的是功耗而不是性能,请尽可能让任务使用同一物理核心中的逻辑处理器。这可能允许您将整个内核置于非常节能的“不做任何事情”状态。

  • 如果您关心安全性(而不是性能或功耗),则根本不要让不相关的任务使用同一物理核心中的逻辑处理器(因为信息,例如当前正在使用的指令类型,可能会从一个逻辑处理器“泄漏”到同一物理核心中的另一个逻辑进程)。请注意,相关任务可以使用同一物理核心中的逻辑进程(例如,属于同一进程且相互信任的两个线程,但不属于不同进程且彼此不信任的线程)。

当然,一个好的操作系统应该知道每个任务的首选项(如果每个任务都关心性能、功耗或安全性),并且会做出明智的决策来处理具有不同首选项的混合任务。遗憾的是,没有好的操作系统--大多数操作系统和API都是在20世纪90年代或更早的时候设计的(当时SMP刚刚起步,而且所有CPU都是完全相同的),并且缺乏做出智能决策所必需的任务信息;因此,他们认为性能是所有任务唯一重要的因素,这导致了“任务在可能的情况下跨物理核心分布,即使它不是理想的”行为。

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

https://stackoverflow.com/questions/66014168

复制
相关文章

相似问题

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