我是将 Microsoft Azure 用于科学计算的新手,并且在设置时遇到了一些问题。
我有一个跳转盒设置,作为我希望使用的软件的许可证服务器,还有一个通用驱动器来存储所有软件。
还设置了 6 个计算节点(16 个核心/节点),我可以毫无问题地从跳转盒“ssh”到计算节点。跳转盒和计算节点使用 CentOS 和 OpenMPI 1.10.3
我创建了一个脚本,该脚本存储在我通过“clusRun.sh”在每个计算节点上运行的已安装跳转盒驱动器上,该脚本设置了特定于我运行的软件和 OpenMPI 的所有环境变量。
希望这一切听起来都不错。
过去我在 Linux 集群上使用过这个软件,没有任何问题。使用类似的命令提交作业,例如:
mpirun -np XXX -hostfile XXX {软件路径}
其中 XXX 是处理器的数量和主机文件的路径
我在跳转框上运行这个命令,主机文件有一个每个计算节点的名称列表,每个计算节点名称在主机文件中的次数与我想要的节点上的核心数相同。希望这是有道理的!跳箱节点上运行的作业没有进程,它仅用于启 Action 业。
当我尝试以这种方式运行作业时,我收到了许多错误,其中大多数似乎与 Infiniband 相关。以下是关键错误的简短列表:
"The /dev/hfi1_0 device failed to appear after 15.0 seconds: Connection timed out"
"The OpenFabrics (openib) BTL failed to initialize while trying to create an internal queue"
"OMPI source: btl_openib.c:324
Function: ibv_create_srq()
Error: Function not implemented (errno=38)
Device: mlx4_0"
“至少有一对 MPI 进程无法相互访问以进行 MPI 通信。这意味着没有 Open MPI 设备表明它可以用于在这些进程之间进行通信”
是否有任何特定于 OpenMPI 的环境变量需要设置来定义任何 Infiniband 设置?我已经定义了常用的 MPI_BIN、LD_LIBRARY_PATH、PATH 等。我知道 IntelMPI 需要额外的变量。
Infiniband 应该作为 A9 HPC 分配的一部分,但是我不确定它是否需要任何特定设置。当我运行 'ifconfig -a' 时,没有 Infiniband 特定的条目(我希望看到 ib0、ib1 等)。我只有 eth0、eth1 和 lo
我期待着有人可能提供的任何建议。
亲切的问候!
最佳答案
如 "Repository containing the Articles on azure.microsoft.com Documentation Center" by daltskin (从已删除/隐藏的 Azure/azure-content-internal fork )中所述,在页面
https://github.com/daltskin/azure-content/blob/master/articles/virtual-machines/virtual-machines-a8-a9-a10-a11-specs.md#access-to-the-rdma-network
“关于 A8、A9、A10 和 A11 计算密集型实例”-“从 Linux A8 和 A9 虚拟机访问”
因此,带有 OpenMPI 1.10.3 的 CentOS 可能无法与 Azure 的这个虚拟化 RDMA 一起使用,因为 OpenMPI 1.10.3 不是“英特尔 MPI 库 5”。
在官方文档中,Azure 也将英特尔 MPI 列为支持 RDMA(使用 SLES 12 SP1 HPC VM):
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/rdma-cluster “设置 Linux RDMA 集群以运行 MPI 应用程序” - 2017-3-14
因此,有 Azure 虚拟 RDMA (Infiniband) 的专有内核驱动程序,预安装到 Azure 的 SLES 12 VM 镜像和 Azure 的 CentOS VM 镜像中,还有专有的用户空间驱动程序(因为 Infiniband 通常使用内核旁路并从用于数据移动操作的用户空间)仅在英特尔 MPI 中。
尝试使用预装的英特尔 MPI 重新编译您的应用程序,并使用英特尔 MPI 的 mpirun/mpiexec 启动它。指令仍然在同一个 https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/rdma-cluster 上:
关于azure - 如何 : Azure OpenMPI with Infiniband - Linux,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43669464/