設定和最佳化 VM

警告

本文參考 CentOS,這是接近結束生命週期 (EOL) 狀態的 Linux 發行版本。 請據以考慮您的使用和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指引

適用於: ✔️ Linux VM ✔️ Windows VM ✔️ 彈性擴展集 ✔️ 統一擴展集

本文會分享指引,說明如何設定和最佳化適用於 HPC 並已啟用 InfiniBand 的 HB 系列N 系列 VM。

VM 映像

在已啟用 InfiniBand (IB) 的 VM 上,需要適當的 IB 驅動程式才能啟用 RDMA。

  • Marketplace 中的 Ubuntu-HPC VM 映像會預先設定適當的 NVIDIA IB 驅動程式和 GPU 驅動程式。
  • Marketplace 中的 AlmaLinux-HPC VM 映像會預先設定適當的 NVIDIA IB 驅動程式和 GPU 驅動程式。

這些 VM 映像是以基底 Ubuntu 和 AlmaLinux Marketplace VM 映像為基礎。 從其基底 Marketplace 映像建立這些 VM 映像時所使用的指令碼,位於 azhpc-images 存放庫上。

在已啟用 GPU 的 N 系列 VM 上,還需要合適的 GPU 驅動程式。 這可以透過下列方法取得:

  • 使用 Ubuntu-HPC VM 映像AlmaLinux-HPC VM 映像,預先設定 NVIDIA GPU 驅動程式和 GPU 計算軟體堆疊 (CUDA, NCCL)。
  • 透過 VM 延伸模組新增 GPU 驅動程式。
  • 手動安裝 GPU 驅動程式。
  • Marketplace 上的一些其他 VM 映像也會預先安裝 NVIDIA GPU 驅動程式,包括來自 NVIDIA 的一些 VM 映像。

根據工作負載的 Linux 發行版和版本需求,Marketplace 中的 Ubuntu-HPC VM 映像AlmaLinux-HPC VM 映像是在 Azure 上開始使用 HPC 和 AI 工作負載最簡單的方式。 也建議使用工作負載特定的自訂和設定來建立自訂 VM 映像 以供重複使用。

HPC VM 映像支援的 VM 大小

InfiniBand OFED 支援

最新的 Azure HPC Marketplace 映像隨附 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 系列:NDv2、NDv4 VM 大小支援 NVIDIA GPU 驅動程式和 GPU 計算軟體堆疊 (CUDA 和 NCCL)。
  • NVIDIA GPU 驅動程式支援 N 系列中的其他 'NC' 和 'ND' VM 大小。

N 系列中的所有 VM 大小都支援第 2 代 VM,但有些較舊的 VM 也支援第 1 代 VM。 第 2 代支援也會在映像 URN 或版本結尾時以「01」表示。

已啟用 SR-IOV 的 VM

Ubuntu-HPC VM 映像

已啟用 SR-IOV 的支援 RDMA VM 適合 Ubuntu-HPC VM 映像 18.04, 20.04 及 22.04 版。 這些 VM 映像會預先設定 RDMA、NVIDIA GPU 驅動程式、GPU 計算軟體堆疊 (CUDA, NCCL) 的 Mellanox OFED 驅動程式,以及常用的 MPI 程式庫和科學運算套件。 請參閱 VM 大小支援矩陣

  • 可用或最新版本的 VM 映像可以使用 CLIMarketplace 列出下列資訊。

    "publisher": "Microsoft-DSVM",
    "offer": "Ubuntu-HPC",
    
  • 用於從其基底 Ubuntu Marketplace 映像建立 Ubuntu-HPC VM 映像時所使用的指令碼,位於 azhpc-images 存放庫上。

AlmaLinux-HPC VM 映像

已啟用 SR-IOV 的支援 RDMA VM 適合 AlmaLinux-HPC VM 映像 8.5, 8.6 及 8.7 版。 這些 VM 映像會預先設定 RDMA、NVIDIA GPU 驅動程式、GPU 計算軟體堆疊 (CUDA, NCCL) 的 Mellanox OFED 驅動程式,以及常用的 MPI 程式庫和科學運算套件。 請參閱 VM 大小支援矩陣

  • 可用或最新版本的 VM 映像可以使用 CLIMarketplace 列出下列資訊。

    "publisher": "AlmaLinux",
    "offer": "AlmaLinux-HPC",
    
  • 用於從其基底 AlmaLinux Marketplace 映像建立 AlmaLinux-HPC VM 映像時所使用的指令碼,位於 azhpc-images 存放庫上。

此外,如需 Ubuntu-HPC VM 映像AlmaLinux-HPC VM 映像中所含內容的詳細資料,以及如何部署,請參閱《TechCommunity》一文

注意

我們用來支援 CentOS-HPC VM 映像。 由於逐步淘汰 CentOS (目前唯一支援的版本 CentOS 7 將繼續接收社群安全性修補檔和 Bug 修正更新,直到 2024 年 6 月為止),我們不會將任何新的 CentOS HPC 映像發行至 Azure Marketplace。 建議 CentOS/RHEL 使用者使用 Azure Marketplace 中的 AlmaLinux-HPC 映像替代方案,其已安裝與其他 HPC 映像相同的驅動程式集。

RHEL/CentOS VM 映像

您可以在 Marketplace 上設定基底 RHEL 或 CentOS 型非 HPC VM 映像,以在啟用 SR-IOV 的支援 RDMA VM 上使用。 深入了解如何在 VM 上啟用 InfiniBand設定 MPI

Ubuntu VM 映像

Marketplace 中的基底 Ubuntu Server 22.04 LTS 和 22.04 LTS VM 映像,同時支援 SR-IOV 和非 SR-IOV 的支援 RDMA VM。 深入了解如何在 VM 上啟用 InfiniBand設定 MPI

注意

在搭載 FDR InfiniBand (例如 NCv3) 已啟用 SR-IOV 的 N 系列 VM 大小上,Mellanox OFED 5.1 和更新版本不支援 ConnectX3-Pro InfiniBand 介面卡。 請在搭配 ConnectX3-Pro 介面卡的 N 系列 VM 上使用 LTS Mellanox OFED 4.9-0.1.7.0 版或舊版。 如需詳細資訊,請參閱《Linux InfiniBand 驅動程式》。

SUSE Linux Enterprise Server VM 映像

支援 Marketplace 中適用於 HPC 的 SLES 12 SP3、適用於 HPC (進階) 的 SLES 12 SP3、適用於 HPC 的 SLES 12 SP1、適用於 HPC (進階) SLES 12 SP1、SLES 12 SP4 和 SLES 15 VM 映像。 這些 VM 映像會預先載入 RDMA 的 Network Dircet 驅動程式 (為非 SR-IOV VM 大小) 和 Intel MPI 5.1 版。 深入了解如何在 VM 上設定 MPI

最佳化 VM

以下是一些選用的最佳化設定,可改善 VM 上的效能。

更新 LIS

視功能或效能的需求,Linux Integration Services (LIS) 驅動程式可以在支援的 OS 發行版上安裝或更新,尤其是使用自訂映像或舊版 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 資源可用性。

下一步