首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux如何计算两个numa节点之间的numa距离(任何numa库(如libnuma..etc )的内部逻辑)?

linux如何计算两个numa节点之间的numa距离(任何numa库(如libnuma..etc )的内部逻辑)?
EN

Stack Overflow用户
提问于 2018-03-19 04:25:17
回答 2查看 2.7K关注 0票数 2

我尝试过numa_distance()和其他相关函数(从第一个链接),但无法理解。我只是想了解linux是如何计算两个节点之间的NUMA距离的,而这个距离据说是根据体系结构和NUMA互连而变化的。

我提到了以下链接:

  1. https://github.com/jmesmon/numactl/blob/0df3f720e606a3706700e0487ba19d720f50c4b8/distance.c
  2. https://github.com/jmesmon/numactl/blob/0df3f720e606a3706700e0487ba19d720f50c4b8/numa.h
  3. https://github.com/jmesmon/numactl/blob/0df3f720e606a3706700e0487ba19d720f50c4b8/libnuma.c
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-19 05:14:34

在ACPI规范的最新版本中,您可以找到一个名为"SLIT"/System局部性(距离)信息表的表的描述。此表只是一个数组(类似于d = array[numa_node][numa_node]),操作系统使用它来确定任意2个NUMA节点之间的相对距离;其中数组中的值范围为10到254 (255用于“这些NUMA域之间没有连接”),其中值10表示NUMA域中的某个东西访问同一NUMA域(最快的情况)的速度,值254将慢25.4倍。

我假设固件使用硬编码值填充这个表,例如主板制造商可能会做一些测量,并确定适合主板支持的所有CPU型号的值/s。

固件将此表提供给操作系统。操作系统不计算任何东西。

票数 3
EN

Stack Overflow用户

发布于 2019-07-19 13:31:11

这些距离由ACPI狭缝表中的固件硬编码,表示NUMA节点之间的相对内存延迟-- "10“表示延迟1x,而"20”比本地节点访问的延迟"2x“多。Linux在sysfs中公开了这些值,但是有很多方法来访问它们(包括如果您愿意的话直接转储ACPI表)。

节点之间的实际内存延迟很少像ACPI表所声称的那样糟糕,至少从我的测试http://www.codeblueprint.co.uk/2019/07/12/what-are-slit-tables.html中是如此。

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

https://stackoverflow.com/questions/49355785

复制
相关文章

相似问题

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