你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
配置和优化 VM
注意
本文引用了 CentOS,这是一个接近生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南。
适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集 ✔️ 统一规模集
本文分享了有关如何针对 HPC 配置和优化启用了 InfiniBand 的 HB 系列和 N 系列 VM 的指导。
VM 映像
在启用了 InfiniBand (IB) 的 VM 上,需要安装适当的 IB 驱动程序才能启用 RDMA。
- Microsoft Azure 市场中的 Ubuntu-HPC VM 映像预先配置了适当的 NVIDIA IB 驱动程序和 GPU 驱动程序。
- Microsoft Azure 市场中的 AlmaLinux-HPC VM 映像预先配置了适当的 NVIDIA IB 驱动程序和 GPU 驱动程序。
这些 VM 映像基于基础 Ubuntu 和 AlmaLinux 市场 VM 映像。 用于从基础市场映像创建这些 VM 映像的脚本位于 azhpc-images 存储库中。
在启用了 GPU 的 N 系列 VM 上,需要额外安装适当的 GPU 驱动程序。 可通过以下方法安装这些驱动程序:
- 使用预先配置了 NVIDIA GPU 驱动程序和 GPU 计算软件堆栈(CUDA、NCCL)的 Ubuntu-HPC VM 映像或 AlmaLinux-HPC VM 映像。
- 通过 VM 扩展添加 GPU 驱动程序。
- 手动安装 GPU 驱动程序。
- Azure 市场中的其他一些 VM 映像也预装了 NVIDIA GPU 驱动程序,包括来自 NVIDIA 的一些 VM 映像。
根据工作负载的 Linux 发行版和版本需求,可以十分方便地通过 Azure 市场中的 Ubuntu-HPC VM 映像和 AlmaLinux-HPC VM 映像在 Azure 上开始使用 HPC 和 AI 工作负载。 此外,建议使用特定于工作负载的自定义和配置创建自定义 VM 映像以供重复使用。
HPC VM 映像支持的 VM 大小
InfiniBand OFED 支持
最新的 Azure HPC 市场映像随附 Mellanox OFED 5.1 和更高版本,它们不支持 ConnectX3-Pro InfiniBand 卡。 ConnectX-3 Pro InfiniBand 卡需要 MOFED 4.9 LTS 版本。 这些 VM 映像仅支持 ConnextX-5 和更高版本的 InfiniBand 卡。 这些 HPC VM 映像中 InfiniBand OFED 的 VM 大小支持矩阵如下:
GPU 驱动程序支持
目前只有 Ubuntu-HPC VM 映像和 AlmaLinux-HPC VM 映像预先配置了 NVIDIA GPU 驱动程序和 GPU 计算软件堆栈(CUDA、NCCL)。
受支持 HPC VM 映像中 GPU 驱动程序的 VM 大小支持矩阵如下:
- N 系列:NVIDIA GPU 驱动程序和 GPU 计算软件堆栈(CUDA、NCCL)支持 NDv2、NDv4 VM 大小。
- NVIDIA GPU 驱动程序支持 N 系列中的其他“NC”和“ND”VM 大小。
N 系列中所有 VM 大小都支持 Gen 2 VM,不过,有些早期的大小还支持 Gen 1 VM。 映像 URN 或版本的末尾还会以“01”来指示支持 Gen 2。
启用了 SR-IOV 的 VM
Ubuntu-HPC VM 映像
对于启用了 SR-IOV 的支持 RDMA 的 VM,适合使用 Ubuntu-HPC VM 映像版本 18.04、20.04 和 22.04。 这些 VM 映像预先配置了用于 RDMA 的 Mellanox OFED 驱动程序、NVIDIA GPU 驱动程序、GPU 计算软件堆栈(CUDA、NCCL),以及常用的 MPI 库和科学计算包。 请参阅 VM 大小支持矩阵。
可以使用 CLI 或 Azure 市场将 VM 映像的可用版本或最新版本随以下信息一起列出。
"publisher": "Microsoft-DSVM", "offer": "Ubuntu-HPC",
用于从基础 Ubuntu 市场映像创建 Ubuntu-HPC VM 映像的脚本位于 azhpc-images 存储库中。
AlmaLinux-HPC VM 映像
对于启用了 SR-IOV 的支持 RDMA 的 VM,AlmaLinux-HPC VM 映像版本 8.5、8.6 和 8.7 适用。 这些 VM 映像预先配置了用于 RDMA 的 Mellanox OFED 驱动程序、NVIDIA GPU 驱动程序、GPU 计算软件堆栈(CUDA、NCCL),以及常用的 MPI 库和科学计算包。 请参阅 VM 大小支持矩阵。
可以使用 CLI 或 Azure 市场将 VM 映像的可用版本或最新版本随以下信息一起列出。
"publisher": "AlmaLinux", "offer": "AlmaLinux-HPC",
用于从基础 AlmaLinux Microsoft Azure 市场映像创建 AlmaLinux-HPC VM 映像的脚本位于 azhpc-images 存储库中。
此外,TechCommunity 文章中详细介绍了 Ubuntu-HPC VM 映像和 AlmaLinux-HPC VM 映像中包含的内容,以及如何部署这些映像。
注意
我们过去支持 CentOS HPC VM 映像。 由于逐步淘汰了 CentOS(目前唯一受支持的版本 CentOS 7 将在 2024 年 6 月之前继续接收社区安全补丁和 bug 修复更新),我们不会向 Azure 市场发布任何新的 CentOS HPC 映像。 建议 CentOS/RHEL 用户使用 Azure 市场中的 AlmaLinux-HPC 映像替代项,这些映像安装了一组与其他 HPC 映像相同的驱动程序。
RHEL/CentOS VM 映像
可以对 Azure 市场中基于基础 RHEL 或 CentOS 的非 HPC VM 映像进行配置,以便在启用了 SR-IOV 的支持 RDMA 的 VM 上使用。 详细了解如何在 VM 上启用 InfiniBand 和设置 MPI。
Ubuntu VM 映像
启用和未启用 SR-IOV 的支持 RDMA 的 VM 都支持 Microsoft Azure 市场中的基础 Ubuntu Server 20.04 LTS 和 22.04 LTS VM 映像。 详细了解如何在 VM 上启用 InfiniBand 和设置 MPI。
- TechCommunity 一文提供有关如何在 Ubuntu VM 映像中启用 InfiniBand 的说明。
注意
Mellanox OFED 5.1 及更高版本在采用 FDR InfiniBand 的启用了 SR-IOV 的 N 系列 VM 大小(例如 NCv3)中不支持 ConnectX3-Pro InfiniBand 卡。 请在带有 ConnectX3-Pro 卡的 N 系列 VM 上使用 LTS Mellanox OFED 4.9-0.1.7.0 版本或更低版本。 有关详细信息,请参阅 Linux InfiniBand 驱动程序。
SUSE Linux Enterprise Server VM 映像
支持市场中的 SLES 12 SP3 for HPC、SLES 12 SP3 for HPC(高级版)、SLES 12 SP1 for HPC、SLES 12 SP1 for HPC(高级版)、SLES 12 SP4 和 SLES 15 VM 映像。 这些 VM 映像预先加载了用于 RDMA 的 Network Direct 驱动程序(适用于非 SR-IOV VM 大小)和 Intel MPI 版本 5.1。 详细了解如何在 VM 上设置 MPI。
优化 VM
下面是一些可选的优化设置,可用于改进 VM 的性能。
更新 LIS
如果出于功能或性能考虑必需更新 LIS,可在支持的 OS 发行版上安装或更新 Linux Integration Services (LIS) 驱动程序,特别是使用自定义映像或较低的 OS 版本(如 CentOS/RHEL 6.x 或较低的 7.x 版本)部署时。
wget https://aka.ms/lis
tar xzf lis
pushd LISISO
sudo ./upgrade.sh
回收内存
通过自动回收内存避免远程内存访问,从而提高性能。
sudo echo 1 >/proc/sys/vm/zone_reclaim_mode
在 VM 重新启动后,永久保持回收内存模式:
sudo echo "vm.zone_reclaim_mode = 1" >> /etc/sysctl.conf sysctl -p
禁用防火墙和 SELinux
sudo systemctl stop iptables.service
sudo systemctl disable iptables.service
sudo systemctl mask firewalld
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
sudo iptables -nL
sudo sed -i -e's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
禁用 cpupower
sudo service cpupower status
如果启用了,请将其禁用:
sudo service cpupower stop
sudo systemctl disable cpupower
配置 WALinuxAgent
sudo sed -i -e 's/# OS.EnableRDMA=y/OS.EnableRDMA=y/g' /etc/waagent.conf
(可选)可以在运行作业前禁用 WALinuxAgent,然后在作业后重新将其启用,以便为 HPC 工作负载最大限度提高 VM 资源的可用性。
后续步骤
- 详细了解如何在启用了 InfiniBand 的 HB 系列和 N 系列 VM 上启用 InfiniBand。
- 详细了解如何在 VM 上安装和运行各种受支持的 MPI 库。
- 查看 HBv3 系列概述和 HC 系列概述。
- 在 Azure 计算技术社区博客上阅读最新公告、HPC 工作负载示例和性能结果。
- 若要从体系结构角度更概略性地看待如何运行 HPC 工作负荷,请参阅 Azure 上的高性能计算 (HPC)。