Configurare e ottimizzare le macchine virtuali

Attenzione

Questo articolo fa riferimento a CentOS, una distribuzione Linux prossima allo stato EOL (End of Life, fine del ciclo di vita). Prendere in considerazione l'uso e il piano di conseguenza. Per altre informazioni, vedere le linee guida per la fine della vita di CentOS.

Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili ✔️ set di scalabilità uniformi

Questo articolo condivide alcune indicazioni sulla configurazione e l'ottimizzazione delle macchine virtuali serie HB e serie N abilitate per InfiniBand per HPC.

Immagini di macchine virtuali

Nelle macchine virtuali abilitate per InfiniBand (IB) sono necessari i driver IB appropriati per abilitare RDMA.

Queste immagini di macchina virtuale si basano sulle immagini di macchine virtuali del marketplace Ubuntu e AlmaLinux di base. Gli script usati nella creazione di queste immagini di macchina virtuale dalle immagini del marketplace di base si trovano nel repository azhpc-images.

Nelle macchine virtuali serie N abilitate per la GPU, sono necessari anche i driver GPU appropriati. Questo può essere disponibile tramite i metodi seguenti:

  • Usare le immagini di macchine virtuali Ubuntu-HPC o AlmaLinux-HPC che vengono preconfigurate con i driver GPU NVIDIA e lo stack di software di calcolo GPU (CUDA, NCCL).
  • Aggiungere i driver GPU tramite le estensioni della macchina virtuale.
  • Installare manualmente i driver GPU.
  • Alcune altre immagini di macchina virtuale nel Marketplace sono preinstallate anche con i driver GPU NVIDIA, incluse alcune immagini di vm da NVIDIA.

A seconda delle esigenze di distribuzione e versione di Linux dei carichi di lavoro, le immagini di macchine virtuali Ubuntu-HPC e le immagini di vm AlmaLinux-HPC nel Marketplace rappresentano il modo più semplice per iniziare a usare carichi di lavoro HPC e intelligenza artificiale in Azure. È anche consigliabile creare immagini di macchine virtuali personalizzate con personalizzazione e configurazione specifiche del carico di lavoro per il riutilizzo.

Dimensioni delle macchine virtuali supportate dalle immagini delle macchine virtuali HPC

Supporto di InfiniBand OFED

Le immagini più recenti del marketplace HPC di Azure sono incluse con Mellanox OFED 5.1 e versioni successive, che non supportano le schede infiniBand Connessione X3-Pro. le schede InfiniBand di Connessione X-3 Pro richiedono la versione MOFED 4.9 LTS. Queste immagini vm supportano solo le schede ConnextX-5 e InfiniBand più recenti. La matrice di supporto delle dimensioni della macchina virtuale seguente per InfiniBand OFED in queste immagini di macchine virtuali HPC:

  • Serie HB: HB, HC, HBv2, HBv3, HBv4
  • Serie N: NDv2, NDv4

Supporto dei driver GPU

Attualmente solo le immagini di macchine virtuali Ubuntu-HPC e AlmaLinux-HPC sono preconfigurate con i driver GPU NVIDIA e lo stack di software di calcolo GPU (CUDA, NCCL).

La matrice di supporto delle dimensioni della macchina virtuale per i driver GPU nelle immagini di macchine virtuali HPC supportate è la seguente:

  • Serie N: NDv2, le dimensioni delle macchine virtuali NDv4 sono supportate con i driver GPU NVIDIA e lo stack di software di calcolo GPU (CUDA, NCCL).
  • Le altre dimensioni della macchina virtuale "NC" e "ND" nella serie N sono supportate con i driver GPU NVIDIA.

Tutte le dimensioni delle macchine virtuali nella serie N supportano macchine virtuali di seconda generazione, anche se alcune macchine virtuali meno recenti supportano anche macchine virtuali di prima generazione. Il supporto di generazione 2 è indicato anche con un "01" alla fine dell'URN o della versione dell'immagine.

VM abilitate per SR-IOV

Immagini di macchine virtuali Ubuntu-HPC

Per le macchine virtuali abilitate per SR-IOV, le immagini di vm Ubuntu-HPC 18.04, 20.04 e 22.04 sono adatte. Queste immagini di macchina virtuale sono preconfigurate con i driver Mellanox OFED per RDMA, driver GPU NVIDIA, stack di software di calcolo GPU (CUDA, NCCL) e librerie MPI e pacchetti di elaborazione scientifica comunemente usati. Fare riferimento alla matrice di supporto delle dimensioni della macchina virtuale.

  • Le versioni disponibili o più recenti delle immagini di macchina virtuale possono essere elencate con le informazioni seguenti usando l'interfaccia della riga di comando o Marketplace.

    "publisher": "Microsoft-DSVM",
    "offer": "Ubuntu-HPC",
    
  • Gli script usati nella creazione delle immagini di vm Ubuntu-HPC da un'immagine di Ubuntu Marketplace di base si trovano nel repository azhpc-images.

Immagini di macchine virtuali AlmaLinux-HPC

Per le macchine virtuali con supporto per SR-IOV abilitate per RDMA, le immagini delle macchine virtuali AlmaLinux-HPC versioni 8.5, 8.6 e 8.7 sono adatte. Queste immagini di macchina virtuale sono preconfigurate con i driver Mellanox OFED per RDMA, driver GPU NVIDIA, stack di software di calcolo GPU (CUDA, NCCL) e librerie MPI e pacchetti di elaborazione scientifica comunemente usati. Fare riferimento alla matrice di supporto delle dimensioni della macchina virtuale.

  • Le versioni disponibili o più recenti delle immagini di macchina virtuale possono essere elencate con le informazioni seguenti usando l'interfaccia della riga di comando o Marketplace.

    "publisher": "AlmaLinux",
    "offer": "AlmaLinux-HPC",
    
  • Gli script usati nella creazione delle immagini di macchine virtuali AlmaLinux-HPC da un'immagine del Marketplace AlmaLinux di base si trovano nel repository azhpc-images.

Sono inoltre disponibili informazioni dettagliate sulle immagini delle macchine virtuali Ubuntu-HPC e sulle immagini delle macchine virtuali AlmaLinux-HPC e su come distribuirle sono disponibili in un articolo TechCommunity.

Nota

È stato usato per supportare immagini di macchine virtuali CentOS-HPC. A causa del passaggio da CentOS (attualmente l'unica versione supportata di CentOS 7 continuerà a ricevere patch di sicurezza della community e aggiornamenti di correzione di bug fino a giugno 2024), non verranno rilasciate nuove immagini HPC CentOS in Azure Marketplace. Gli utenti centOS/RHEL sono consigliati per usare le alternative alle immagini AlmaLinux-HPC in Azure Marketplace, che hanno lo stesso set di driver installati come altre immagini HPC.

Immagini di macchine virtuali RHEL/CentOS

Le immagini di macchine virtuali non HPC basate su RHEL o CentOS basate su CentOS nel Marketplace possono essere configurate per l'uso nelle macchine virtuali con supporto per RDMA abilitate per SR-IOV. Altre informazioni sull'abilitazione di InfiniBand e sulla configurazione di MPI nelle macchine virtuali.

Immagini di macchine virtuali Ubuntu

Le immagini di macchine virtuali Ubuntu Server 20.04 LTS e 22.04 LTS di base nel Marketplace sono supportate sia per le macchine virtuali con supporto SR-IOV che non SR-IOV RDMA. Altre informazioni sull'abilitazione di InfiniBand e sulla configurazione di MPI nelle macchine virtuali.

  • Le istruzioni per abilitare InfiniBand nelle immagini delle macchine virtuali Ubuntu sono disponibili in un articolo TechCommunity.

Nota

Mellanox OFED 5.1 e versioni successive non supportano le schede InfiniBand Connessione X3-Pro nelle dimensioni delle macchine virtuali serie N abilitate per SR-IOV con FDR InfiniBand (ad esempio NCv3). Usare LTS Mellanox OFED versione 4.9-0.1.7.0 o precedente nella macchina virtuale serie N con schede Connessione X3-Pro. Per altre informazioni, vedere Driver InfiniBand linux.

SU edizione Standard immagini di macchine virtuali Linux Enterprise Server

Sono supportati SLES 12 SP3 per HPC, SLES 12 SP3 per HPC (Premium), SLES 12 SP1 per HPC, SLES 12 SP1 per HPC (Premium), SLES 12 SP4 e SLES 15 vm nel Marketplace. Queste immagini di macchina virtuale vengono precaricate con i driver Di rete diretta per RDMA (nelle dimensioni delle vm non SR-IOV) e Intel MPI versione 5.1. Altre informazioni sulla configurazione di MPI nelle macchine virtuali.

Ottimizzare le macchine virtuali

Di seguito sono riportate alcune impostazioni di ottimizzazione facoltative per migliorare le prestazioni nella macchina virtuale.

Aggiornare LIS

Se necessario per le funzionalità o le prestazioni, è possibile installare o aggiornare i driver di Linux Integration Services (LIS) nelle distribuzioni del sistema operativo supportate, in particolare la distribuzione usando un'immagine personalizzata o una versione precedente del sistema operativo, ad esempio CentOS/RHEL 6.x o versione precedente di 7.x.

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

Recuperare memoria

Migliorare le prestazioni recuperando automaticamente la memoria per evitare l'accesso remoto alla memoria.

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

Mantenere persistente la modalità di recupero della memoria dopo il riavvio della macchina virtuale:

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

Disabilitare il firewall e edizione Standard Linux

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

Disabilitare cpupower

sudo service cpupower status

Se abilitata, disabilitarla:

sudo service cpupower stop
sudo systemctl disable cpupower

Configurare WALinuxAgent

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

Facoltativamente, WALinuxAgent può essere disabilitato prima di eseguire un processo e quindi abilitato dopo il processo per la disponibilità massima delle risorse della macchina virtuale per il carico di lavoro HPC.

Passaggi successivi

  • Altre informazioni sull'abilitazione di InfiniBand nelle macchine virtuali serie HB e serie N abilitate per InfiniBand.
  • Altre informazioni sull'installazione e l'esecuzione di varie librerie MPI supportate nelle macchine virtuali.
  • Esaminare la panoramica della serie HBv3 e la panoramica della serie HC.
  • Per informazioni sugli annunci più recenti, sugli esempi di carico di lavoro HPC e sui risultati delle prestazioni, vedere i blog della community tecnica di calcolo di Azure.
  • Per un quadro generale sull'architettura per l'esecuzione di carichi di lavoro HPC, vedere HPC (High Performance Computing) in Azure.