首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启用超级导航系统上的CPU编号

启用超级导航系统上的CPU编号
EN

Stack Overflow用户
提问于 2009-11-16 18:56:44
回答 2查看 4.4K关注 0票数 9

我试图了解操作系统(Windows,linux)如何在启用超线程的环境中将数字分配给逻辑cpus。?

开放源码软件是否先向物理CPUs顺序分配编号,然后开始对逻辑cpus编号,或者是否遵循了其他规则??例如,在具有超线程的2个物理cpu系统中,操作系统是否将编号0、2分配给第一个物理cpu,然后分配给1,3到第二个物理cpu。?

如有任何参考资料,将不胜感激。

提前谢谢。

你好,-Jay。

编辑:回答Alan的问题:我需要知道这一点,因为在我的工作中,我需要将各种线程绑定到特定的cpus,以避免上下文切换,并且我希望确保某些任务( threads )绑定到独立的物理CPUs。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-16 19:18:32

据我所知,这取决于CPU如何暴露他的核心。当启用HT时,没有公开的物理CPU,而是每个物理CPU有两个逻辑CPU,因此,如果在任一逻辑CPU上运行线程,则没有区别。唯一重要的是,哪些逻辑CPU属于每个物理CPU。

对于单核处理器(就像奔腾4和HT一样),它非常直接,因为你只有一对,所以它是(0,1)。对于四核处理器(如Nehalem),逻辑核对是(0,4),(1,5),(2,6)和(3,7)。拥有每对的所有前半部,然后拥有所有的第二半部的模式与未来拥有更多核心的CPU关闭规模。

真正的问题是为什么你需要知道配对的安排?让操作系统的调度器为正确的线程选择正确的核心-它做了相当不错的工作。

票数 9
EN

Stack Overflow用户

发布于 2010-06-02 14:47:13

您可以在/sys/devices/system/cpu/中查找有关CPU的信息。核心及其超线程对的布局可以在/sys/devices/system/cpu/cpuN/topology/thread_siblings_list中找到。

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

https://stackoverflow.com/questions/1744130

复制
相关文章

相似问题

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