你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
概述
H 系列虚拟机(VM)是 Azure 上的最新 HPC 产品/服务。 HB 系列 VM 提供 60 核 AMD EPYC 处理器,并针对运行内存带宽要求较高的应用程序进行了优化,例如显式有限元素分析、流体动力学和天气建模。 HC 系列 VM 具有 44 核 Intel Xeon Skylake 处理器,并且针对需要密集 CPU 计算的应用程序进行了优化,例如分子动态和隐式有限元素分析。 HB 和 HC VM 具有 100-Gb/s EDR InfiniBand,并支持最新的 MPI 类型和版本。 有关如何在 HB 和 HC VM 上缩放 HPC 应用程序的详细信息,请参阅 缩放 HPC 应用程序指南。
Azure CycleCloud 支持新的 H 系列 VM,但为了获得最佳体验和性能,请遵循本文中的准则和最佳做法。
CentOS 7.6 HPC 市场映像
CentOS 7.6 HPC 市场映像包含启用 InfiniBand 接口的所有驱动程序以及 /opt 中安装的所有常见 MPI 变体的预编译版本。 有关图像提供的详细信息,请参阅 此博客文章。
若要在创建群集时使用 CentOS 7.6 HPC 映像,请在“高级设置”参数上选中“自定义映像”框并输入值OpenLogic:CentOS-HPC:7.6:latest。

为了支持较旧的 H16r VM 系列,并将群集头节点锁定在相同版本的 CentOS,基础操作系统下拉列表中的默认“Cycle CentOS 7”映像会部署 CentOS 7.4。 虽然此版本适用于大多数 VM 系列,但 HB 和 HC VM 需要 CentOS 7.6 或更高版本以及不同的 Mellanox 驱动程序。
在低于 7.7.4 的 CycleCloud 版本中禁用 SElinux
默认情况下,SElinux 只考虑 /root 并 /home 作为主目录的有效路径。 如果用户在这些路径之外有主目录,SElinux 会阻止 SSH 在用户的主目录中使用任何 SSH 密钥对。 在 CycleCloud 群集中,可以在 /shared/home中创建用户主目录。 虽然高于 7.7.4 的 CycleCloud 版本会自动将 /shared/home 路径设置为有效的 SElinux homedir 上下文,但旧版本不支持此功能。 若要确保 SSH 适用于群集上的用户,请在群集模板中禁用 SElinux:
[[node defaults]]
[[[configuration]]]
cyclecloud.selinux.policy = permissive
使用 Slurm 运行 MPI 作业
在 HB 或 HC VM 上运行的 MPI 作业需要在同一虚拟机规模集中运行。 若要确保为使用 Slurm 运行的 MPI 作业正确自动缩放 VM 的位置,请在群集模板中设置以下属性:
[[nodearray execute]]
Azure.SingleScaleset = true
Azure.MaxScalesetSize = 300
Azure.Overprovision = true
获取用于 OpenMPI 和 MPICH 的 pkey
某些 MPI 变体要求在运行作业时指定 InfiniBand PKEY。 使用以下 Bash 函数确定 PKEY:
get_ib_pkey()
{
key0=$(cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/0)
key1=$(cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/1)
if [ $(($key0 - $key1)) -gt 0 ]; then
export IB_PKEY=$key0
else
export IB_PKEY=$key1
fi
export UCX_IB_PKEY=$(printf '0x%04x' "$(( $IB_PKEY & 0x0FFF ))")
}