代码之家  ›  专栏  ›  技术社区  ›  Rasmus Faber

将逻辑处理器映射到物理处理器

  •  3
  • Rasmus Faber  · 技术社区  · 17 年前

    在双四核上 GetProcessAffinityMask (或taskman.exe中“Set affinity”的对话框)将报告八个逻辑处理器。如何找出哪个逻辑处理器在哪个物理处理器上?特别是:哪些逻辑处理器位于同一物理处理器上?

    编辑:

    3 回复  |  直到 17 年前
        1
  •  7
  •   Mehrdad Afshari    17 年前

    你可以用 Win32_Processor WMI类,用于查询内核数、逻辑处理器数、体系结构、缓存以及系统上CPU的其他信息。

    要查询有关系统中逻辑处理器之间关系的信息,可以使用 GetLogicalProcessorInformation API函数。

        2
  •  2
  •   Sandy Soil    14 年前

    c:\App\SysInternals>Coreinfo.exe -c
    
    Coreinfo v3.0 - Dump information on system CPU and memory topology
    Copyright (C) 2008-2011 Mark Russinovich
    Sysinternals - www.sysinternals.com
    
    Logical to Physical Processor Map:
    **------  Physical Processor 0 (Hyperthreaded)
    --**----  Physical Processor 1 (Hyperthreaded)
    ----**--  Physical Processor 2 (Hyperthreaded)
    ------**  Physical Processor 3 (Hyperthreaded)
    

    正如该芯片预期的那样,8个超线程有8个*,每个核心两个。然而,尚不清楚的是*的排列如何与Windows显示的逻辑处理器列表相匹配。例如,任务管理器为我提供了一个对话框,用于为任何进程分配处理器关联,标记为CPU 0到CPU 7。假设您可以获取coreinfo的输出并从左到右对逻辑处理器进行编号,这是公平的(但不是必要的)。因此,“CPU 5”将是物理处理器2上运行的第二个超线程。

        3
  •  1
  •   Community Mohan Dere    8 年前

    编号是按顺序进行的:首先是所有物理核,然后是逻辑核[1]。

    [1] CPU Numbering on a hypertheading enabled system