我有 2 个节点的 NUMA 机器。我想分别在两个节点上分配数组的两半。我怎样才能做到这一点?
请注意,“一半”是指连续的虚拟内存块。我找到了 numa_alloc_interleaved 函数,但它不能满足我的要求。
我有 2 个节点的 NUMA 机器。我想分别在两个节点上分配数组的两半。我怎样才能做到这一点?
请注意,“一半”是指连续的虚拟内存块。我找到了 numa_alloc_interleaved 函数,但它不能满足我的要求。
你有几个选择。
您可以使用一段代码numa_alloc_onnode
在要使用的每个节点上分配一个块,然后将该块的控制/所有权授予在该节点上运行的代码。
或者,您可以在每个节点上启动代码,然后让每个节点的代码使用numa_alloc_local
.