gpt4 book ai didi

c - MPI 和 2-socket 节点非统一内存访问

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:12 24 4
gpt4 key购买 nike

我使用一个包含多个节点的集群。它们每个都有 2 个处理器,内部有 8 个内核。我将 Open MPI 与 SLURM 结合使用。

我的测试表明,MPI 发送/接收数据传输速率如下:在等级为 0 的 MPI 进程和 MPI 进程 1 之间约为 9 GB/秒,但在进程 0 和进程 2 之间为 5 GB/秒。我假设发生这种情况是因为我们的进程在不同的处理器上执行。

我想避免非本地内存访问。我找到的建议here没有帮助。所以问题是,是否有可能运行 8 个 MPI 进程——全部在同一个处理器上?如果是 - 我该怎么做?

谢谢。

最佳答案

mpiexec 的以下命令行选项集应该可以解决 Open MPI 1.7 之前的版本问题:

--by-core --bind-to-core --report-bindings

最后一个选项将漂亮地打印每个等级的实际绑定(bind)。绑定(bind)还会激活共享内存 BTL 模块中的一些 NUMA 感知。

从 Open MPI 1.7 开始,进程在可用套接字上进行分布式循环,并默认绑定(bind)到单个内核。要复制上述命令行,应该使用:

--map-by core --bind-to core --report-bindings

关于c - MPI 和 2-socket 节点非统一内存访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27527046/

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