gpt4 book ai didi

language-agnostic - 如何使程序 NUMA 就绪?

转载 作者:行者123 更新时间:2023-12-04 07:44:40 29 4
gpt4 key购买 nike

我的程序使用共享内存作为数据存储。此数据必须可供任何正在运行的应用程序使用,并且必须快速获取此数据。但是一些应用程序可以运行在不同的 NUMA 节点上,并且它们的数据访问非常昂贵。每个 NUMA 节点的数据复制是唯一的方法吗?

最佳答案

有两个主要的放缓来源可归因于 NUMA。首先是远程访问的延迟增加,这可能因平台而异。在我使用的平台上,延迟下降了大约 30%。

性能损失的另一个来源可能来自 NUMA 节点之间的通信链路和 Controller 的争用。

Linux 的默认分配方案是在创建数据的节点上分配数据。如果应用程序中的大部分数据由单个线程初始化,那么它将生成大量跨 NUMA 域流量和该内存节点的争用。

如果您的数据是只读的,那么复制是一个很好的解决方案。

否则,在所有节点之间交错分配数据将在所有节点之间分配请求,并有助于缓解拥塞。

要交错数据,您可以使用 set_mempolicy()来自 numaif.h如果您使用的是 Linux。

关于language-agnostic - 如何使程序 NUMA 就绪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6955585/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com