【问题标题】:How to use GetNumaProximityNode (Win7+)?如何使用 GetNumaProximityNode (Win7+)?
【发布时间】:2010-01-24 08:33:47
【问题描述】:

从 Win7/Server2008R2 开始,GetNumaProximityNode(Ex) 函数可用。它应该有助于检索 NUMA 节点之间的距离,但我无法从文档 (http://msdn.microsoft.com/en-us/library/ms683206(VS.85).aspx) 中理解它应该如何工作。它说你给它一个距离,它返回相应的节点(如果有的话)。

从 Linux 内核和一些 HP APIC 文档中阅读了一些代码,我看到距离以 10 的整数倍数表示(到自身的距离是 10),但它也可以是 18 之类的东西(不完全是慢两倍) .但我仍然不知道如何使用 Windows API 计算两个节点之间的距离(在 Linux 下,libnuma 有一个“距离”函数可以做到这一点)。

有人知道这个功能怎么用吗?

【问题讨论】:

    标签: c++ optimization memory cpu numa


    【解决方案1】:

    我找到了适用于 Windows 的解决方案(尽管尚未测试)。距离可以在 SLIT - 系统位置信息表中找到 - 由 OEM 提供的扩展,可通过 ACPI 获得。它包含一个描述距离的 N_CPU x N_CPU 矩阵([1][3] 是节点 1 和 3 之间的距离;[Y][Y] 始终为 10;低于 10 无效)。

    Windows Vista+ 有 GetSystemFirmwareTable 方法可以用来检索这个表(在 XP 下好像可以从 Registry 中检索,但是比较困难)。
    该表的结构可以在 ACPICA 包 (http://www.acpica.org) 中找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多