Udostępnij przez


Konfiguracja i optymalizacja maszyn wirtualnych serii H i N z włączoną usługą InfiniBand

Dotyczy: ✔️ Maszyny wirtualne Linux ✔️ Maszyny wirtualne Windows ✔️ Elastyczne zestawy skalowania ✔️ Jednolite zestawy skalowania

W tym artykule przedstawiono wskazówki dotyczące konfigurowania i optymalizowania maszyn wirtualnych z obsługą InfiniBand serii HB i serii N dla HPC.

Obrazy maszyn wirtualnych

Na maszynach wirtualnych z włączoną funkcją InfiniBand (IB) wymagane są odpowiednie sterowniki IB w celu włączenia funkcji RDMA.

Te obrazy maszyn wirtualnych są oparte na bazowych obrazach maszyn wirtualnych z systemem Ubuntu i AlmaLinux. Skrypty używane podczas tworzenia tych obrazów maszyn wirtualnych z ich bazowych obrazów z marketplace'u znajdują się w repozytorium azhpc-images.

W przypadku maszyn wirtualnych serii N z obsługą procesora GPU wymagane są również odpowiednie sterowniki procesora GPU. Można to uzyskać za pomocą następujących metod:

W zależności od potrzeb dystrybucji Linux i wymagań wersji obciążeń, obrazy maszyn wirtualnych Ubuntu-HPC i obrazy maszyn wirtualnych AlmaLinux-HPC w witrynie Marketplace są najprostszym sposobem rozpoczęcia korzystania z obciążeń HPC i AI na platformie Azure. Zaleca się również tworzenie niestandardowych obrazów maszyn wirtualnych z dostosowaniem i konfiguracją specyficzną dla obciążenia w celu ponownego użycia.

Rozmiary maszyn wirtualnych obsługiwane przez obrazy maszyn wirtualnych HPC

Obsługa funkcji InfiniBand OFED

Najnowsze obrazy witryny Azure HPC marketplace są dostarczane z rozwiązaniem Mellanox OFED 5.1 lub nowszym, które nie obsługują ConnectX3-Pro kart InfiniBand. Karty ConnectX-3 Pro InfiniBand wymagają wersji MOFED 4.9 LTS. Te obrazy maszyn wirtualnych obsługują tylko karty ConnextX-5 i nowsze InfiniBand. Poniższa macierz wsparcia rozmiarów maszyn wirtualnych dla InfiniBand OFED na tych obrazach maszyn wirtualnych HPC:

Obsługa sterowników procesora GPU

Obecnie tylko obrazy maszyn wirtualnych Ubuntu-HPC i obrazy maszyn wirtualnych AlmaLinux-HPC są wstępnie skonfigurowane ze sterownikami GPU firmy NVIDIA i stosu oprogramowania obliczeniowego GPU (CUDA, NCCL).

Macierz obsługi rozmiaru maszyny wirtualnej dla sterowników procesora GPU w obsługiwanych obrazach maszyn wirtualnych HPC jest następująca:

  • Seria N: Rozmiary VM NDv2, NDv4 są obsługiwane ze sterownikami GPU NVIDIA i stosem oprogramowania obliczeniowego GPU (CUDA, NCCL).
  • Pozostałe rozmiary maszyn wirtualnych "NC" i "ND" w serii N są obsługiwane przez sterowniki procesora GPU FIRMY NVIDIA.

Wszystkie rozmiary maszyn wirtualnych w serii N obsługują maszyny wirtualne 2. generacji, ale niektóre starsze obsługują również maszyny wirtualne 1. generacji. Obsługa Gen 2 jest również wskazywana przez "01" na końcu URN obrazu lub wersji.

maszyny wirtualne z obsługą SR-IOV

obrazy maszyn wirtualnych Ubuntu-HPC

W przypadku maszyn wirtualnych obsługujących SR-IOV i RDMA, odpowiednie są obrazy Ubuntu-HPC w wersjach 18.04, 20.04 i 22.04. Te obrazy maszyn wirtualnych są wstępnie skonfigurowane ze sterownikami Mellanox OFED dla RDMA, sterownikami GPU NVIDIA, stosu oprogramowania obliczeniowego GPU (CUDA, NCCL) oraz często używanych bibliotek MPI i pakietów obliczeń naukowych. Zapoznaj się z macierzą obsługi rozmiarów maszyn wirtualnych.

  • Dostępne lub najnowsze wersje obrazów maszyn wirtualnych można uzyskać korzystając z poniższych informacji przy użyciu interfejsu wiersza polecenia lub Marketplace.

    "publisher": "Microsoft-DSVM",
    "offer": "Ubuntu-HPC",
    
  • Skrypty używane podczas tworzenia obrazów maszyn wirtualnych Ubuntu-HPC z podstawowego obrazu witryny Ubuntu Marketplace znajdują się w repozytorium azhpc-images.

obrazy maszyn wirtualnych AlmaLinux-HPC

W przypadku SR-IOV maszyn wirtualnych obsługujących funkcję RDMA AlmaLinux-HPC obrazy maszyn wirtualnych w wersji 8.5, 8.6 i 8.7 są odpowiednie. Te obrazy maszyn wirtualnych są wstępnie skonfigurowane ze sterownikami Mellanox OFED dla RDMA, sterownikami GPU NVIDIA, stosu oprogramowania obliczeniowego GPU (CUDA, NCCL) oraz często używanych bibliotek MPI i pakietów obliczeń naukowych. Zapoznaj się z macierzą obsługi rozmiarów maszyn wirtualnych.

  • Dostępne lub najnowsze wersje obrazów maszyn wirtualnych można uzyskać korzystając z poniższych informacji przy użyciu interfejsu wiersza polecenia lub Marketplace.

    "publisher": "AlmaLinux",
    "offer": "AlmaLinux-HPC",
    
  • Skrypty używane podczas tworzenia obrazów maszyn wirtualnych AlmaLinux-HPC z podstawowego obrazu witryny Marketplace AlmaLinux znajdują się w repozytorium azhpc-images.

Ponadto więcej szczegółowych informacji na temat elementów zawartych w obrazach maszyn wirtualnychUbuntu-HPC i obrazach maszyn wirtualnychAlmaLinux-HPC oraz o tym, jak je wdrożyć, znajdują się na obrazach maszyn wirtualnych HPC platformy Azure.

Obrazy maszyn wirtualnych systemu RHEL

Podstawowe obrazy maszyn wirtualnych oparte na systemie RHEL, które nie są przeznaczone do HPC, dostępne w witrynie Marketplace, można skonfigurować do użycia na maszynach wirtualnych obsługujących RDMA z włączoną funkcją SR-IOV. Dowiedz się więcej na temat włączania funkcji InfiniBand i konfigurowania interfejsu MPI na maszynach wirtualnych.

Obrazy maszyn wirtualnych z systemem Ubuntu

Podstawowe obrazy maszyn wirtualnych z systemem Ubuntu Server 20.04 LTS i 22.04 LTS w witrynie Marketplace są obsługiwane zarówno dla maszyn wirtualnych obsługujących SR-IOV, jak i innych niżSR-IOV RDMA. Dowiedz się więcej na temat włączania funkcji InfiniBand i konfigurowania interfejsu MPI na maszynach wirtualnych.

  • Instrukcje dotyczące włączania rozwiązania InfiniBand na obrazach maszyn wirtualnych z systemem Ubuntu znajdują się w artykule TechCommunity.

Uwaga / Notatka

System Mellanox OFED 5.1 lub nowszy nie obsługuje kart InfiniBand ConnectX3-Pro w rozmiarach maszyn wirtualnych serii N z włączonym SR-IOV obsługującym FDR InfiniBand (np. NCv3). Użyj protokołu LTS Mellanox OFED w wersji 4.9-0.1.7.0 lub starszej na maszynach wirtualnych serii N z kartami ConnectX3-Pro. Aby uzyskać więcej informacji, zobacz Sterowniki InfiniBand systemu Linux.

Obrazy maszyn wirtualnych systemu SUSE Linux Enterprise Server

Obsługiwane są obrazy SLES 12 SP3 dla HPC, SLES 12 SP3 dla HPC (Premium), SLES 12 SP1 dla HPC, SLES 12 SP1 dla HPC (Premium), SLES 12 SP4 i SLES 15 maszyn wirtualnych w witrynie Marketplace. Te obrazy maszyn wirtualnych są wstępnie wyposażone w sterowniki Network Direct dla funkcji RDMA (w rozmiarach maszyn wirtualnych innych niż SR-IOV) oraz Intel MPI w wersji 5.1. Dowiedz się więcej o konfigurowaniu interfejsu MPI na maszynach wirtualnych.

Optymalizowanie maszyn wirtualnych

Poniżej przedstawiono niektóre opcjonalne ustawienia optymalizacji w celu zwiększenia wydajności maszyny wirtualnej.

Aktualizuj LIS

W razie potrzeby w celu zapewnienia funkcjonalności lub wydajności można zainstalować lub zaktualizować sterowniki usług Linux Integration Services (LIS) w obsługiwanych dystrybucjach systemu operacyjnego, zwłaszcza podczas wdrażania przy użyciu obrazu niestandardowego lub starszych wersji systemu operacyjnego, takich jak RHEL 6.x lub wcześniejsze wersje 7.x.

wget https://aka.ms/lis
tar xzf lis
pushd LISISO
sudo ./upgrade.sh

Odzyskiwanie pamięci

Zwiększ wydajność dzięki automatycznemu odzyskiwaniu pamięci, aby uniknąć zdalnego dostępu do pamięci.

sudo echo 1 >/proc/sys/vm/zone_reclaim_mode

Zachowaj trwały tryb odzyskiwania pamięci po ponownym uruchomieniu maszyny wirtualnej:

sudo echo "vm.zone_reclaim_mode = 1" >> /etc/sysctl.conf sysctl -p

Wyłącz zaporę i 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

Wyłącz cpupower

sudo service cpupower status

Jeśli ta opcja jest włączona, wyłącz ją:

sudo service cpupower stop
sudo systemctl disable cpupower

Konfigurowanie programu WALinuxAgent

sudo sed -i -e 's/# OS.EnableRDMA=y/OS.EnableRDMA=y/g' /etc/waagent.conf

Opcjonalnie agent WALinuxAgent może zostać wyłączony przed uruchomieniem zadania, a następnie włączony po zadaniu w celu zapewnienia maksymalnej dostępności zasobów maszyny wirtualnej do obciążenia HPC.

Dalsze kroki