1

我似乎无法弄清楚如何在 Azure 上的两个 CentOS A8 VM 实例中运行 Intel MPI RDMA 应用程序。

我正在尝试在同一专用网络上的两个 Azure A8 虚拟机(VM1、VM2)上测试 RDMA 设置10.1.1.0/24。请注意,如Azure 文档中所述,每个 VM 在地址空间中都有另一个接口172.16.0.0/16。我也按照指南设置基本的两节点集群来运行 mpi 应用程序,但我没有 CentOS 上的 pingpong 应用程序进行测试。基本上,我永远无法测试两个节点的 RDMA 设置。因此,我开始按照示例 2创建一个简单的应用程序,并进行一些调整以在我的 VM 上运行它。

mpirun -ppn 1 -n 2 -hosts VM1,VM2 -env I_MPI_FABRICS=shm:dapl -env I_MPI_DAPL_PROVIDER=ofa-v2-ib0 -env I_MPI_DYNAMIC_CONNECTION=0 ./rdma-tutorial 6011

上述命令将在6011VM1 和 VM2 上的套接字上运行 rdma-tutorial 应用程序。应用程序主读取文件(client_file)以了解正在运行的 VM 是服务器还是客户端。该文件存在于 VM2 上(但不在 VM1 上),因此 VM2 是客户端,该文件包含 VM1 的名称作为服务器。在 VM1(服务器)上,它打开 6011 套接字并等待来自 VM2(客户端)的 QP(队列对)信息。在 VM2 上,它将 QP 信息发送到 VM1。共享 QP 信息后,代码挂起并且永远不会完成。查看 pstack 并使用 gdb 我知道应用程序正在等待从另一端接收消息。请注意,VM 使用eth0on10.1.1.0/24来共享 QP 信息。

我的理解是,一旦共享了 QP 信息,两个虚拟机将通过 eth1(172.16.0.0/16) 网络进行通信。这个对吗?如果是这样,我想应该显示和ethtool -S eth1的计数增加。但不幸的是,他们被卡住了:图片:tx_queue_0_packetstx_queue_0_bytesethtool -S eth1

两个 VM 上都启用了RDMA 映像:启用了 RDMA

另请注意,通过 ping on 无法访问 VM 172.16.0.0/16。我也试过rping了,但这也挂了。

有什么我想念的吗?VM1 应该能够 ping VM2172.16.0.0/16吗?接下来我应该尝试什么?

4

0 回答 0