如何在 MPI(openMPI 应用程序)中获取后端传输 type/configuration?
How to obtain a backend transport type/configuration in MPI (openMPI application)?
所以我有权将作业提交到一个小型集群,如何在 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 以太网或 IPoIB TCP/IP,您将看到 tcp
BTL 被选中。否则,输出取决于您拥有的 Open MPI 版本。对于旧版本,Mellanox InfiniBand HCA 由 openib
BTL 组件本地驱动。对于较新的版本,mx
MTL 接管,您可能需要通过将 mtl_base_verbose
设置为 5 来增加 MTL 框架的冗长程度。
所以我有权将作业提交到一个小型集群,如何在 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 以太网或 IPoIB TCP/IP,您将看到 tcp
BTL 被选中。否则,输出取决于您拥有的 Open MPI 版本。对于旧版本,Mellanox InfiniBand HCA 由 openib
BTL 组件本地驱动。对于较新的版本,mx
MTL 接管,您可能需要通过将 mtl_base_verbose
设置为 5 来增加 MTL 框架的冗长程度。