gpt4 book ai didi

c++ - 如何在 MPI(openMPI 应用程序)中获取后端传输类型/配置?

转载 作者:太空宇宙 更新时间:2023-11-04 07:07:25 25 4
gpt4 key购买 nike

所以我有权将作业提交到一个小型集群,如何在 MPI 应用程序内部获取正在运行的后端 MPI 类型(infiniband、以太网等)?

最佳答案

Open MPI 对它在每台主机上找到的网络互连进行排名,并选择允许与其他节点通信的最快的互连。 InfiniBand 总是胜过以太网,除非有人摆弄 BTL 组件的优先级(通常不会)。

要查看被选中的组件,请将 BTL 框架的详细级别设置为至少 5:

$ mpiexec --mca btl_base_verbose 5 -np 2 ./a.out 
[host:08691] mca: bml: Using self btl to [[56717,1],1] on node host
[host:08690] mca: bml: Using self btl to [[56717,1],0] on node host
[host:08691] mca: bml: Using vader btl to [[56717,1],0] on node host
[host:08690] mca: bml: Using vader btl to [[56717,1],1] on node host

您在这里看到的是来自两个 BTL 组件的模块被实例化:

  • self,Open MPI 用于在同一进程内进行通信;
  • vader,以前称为 sm,它通过共享内存为同一节点上的进程实现消息传递。

如果使用 10G 以太网上的 TCP/IP 或 IPoIB,您将看到 tcp BTL 被选中。否则,输出取决于您拥有的 Open MPI 版本。对于旧版本,Mellanox InfiniBand HCA 由 openib BTL 组件本地驱动。对于较新的版本,mx MTL 接管,您可能需要通过将 mtl_base_verbose 设置为 5 来增加 MTL 框架的详细程度。

关于c++ - 如何在 MPI(openMPI 应用程序)中获取后端传输类型/配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31417199/

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