我想知道是否有任何方法可以找到当前进程正在运行的实际物理处理器/套接字编号,或者提供逻辑处理器编号时对其的映射。
我有一个8插槽系统,总共有128 (0-127)个逻辑处理器。根据我在msdn中所读到的内容,它们将被分成两个处理器组,每个处理器组包含64个逻辑处理器。http://msdn.microsoft.com/en-us/library/dd405503
我尝试过从cpuid中查看cpuid和GetNumaProcessorNodeEx,APIC id帮助识别逻辑处理器ID,而从GetNumaProcessorNodeEx中,我获得了numa节点(我发现如果逻辑处理器的数量不超过64个,这将非常有用),如果逻辑处理器是超线程,是否也可以?
我正在尝试创建一个这样的工具。
处理器无插槽/核心id/HT
处理器0- 0/0/0
处理器1- 0/1/1
处理器2- 0/2/0
..。
处理器8- 1/0/0
处理器9- 1/1/1
..。
任何帮助或链接,以解决这一点将是伟大的。
谢谢
发布于 2012-06-27 03:00:50
套接字/核心/线程层次结构位于APIC ID的位中。
N个低位是线程,M个低位是核心,其余的高位是套接字。
要查找N和M,您需要使用一些CPUID代码:
代码1给出了每个套接字的线程数(在EBX中的某个位置)。
代码4给出了每个插槽的核心数(以EAX为单位)。
例如,如果您有12个线程,每个套接字有6个核心,那么最低的位是线程ID,接下来的3位是核心,其余的是套接字。
https://stackoverflow.com/questions/11213561
复制相似问题