Configurare e ottimizzare le macchine virtuali
Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili ✔️ set di scalabilità uniformi
Questo articolo include alcune linee guida per la configurazione e l'ottimizzazione delle macchine virtuali serie H 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.
- Le immagini di macchine virtuali Ubuntu-HPC nel marketplace sono preconfigurate con i driver NVIDIA IB e i driver GPU appropriati.
- Le immagini di macchine virtuali AlmaLinux-HPC nel marketplace sono preconfigurate con i driver NVIDIA IB e i driver GPU appropriati.
Queste immagini di macchine virtuali si basano sulle immagini di macchine virtuali del marketplace Ubuntu e AlmaLinux di base. Gli script usati nella creazione di queste immagini di macchine virtuali dalle immagini del marketplace di base si trovano nel repository azhpc-images.
Nelle macchine virtuali serie N abilitate per GPU sono necessari anche i driver GPU appropriati. Questo requisito può essere soddisfatto tramite i metodi seguenti:
- Usare le immagini di macchine virtuali Ubuntu-HPC o le immagini di macchine virtuali AlmaLinux-HPC 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 macchine virtuali nel marketplace sono anche preinstallate con i driver GPU NVIDIA, incluse alcune immagini di macchine virtuali 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 macchine virtuali AlmaLinux-HPC nel marketplace sono il modo più semplice per iniziare a usare carichi di lavoro HPC e di 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 del marketplace HPC di Azure più recenti sono fornite con Mellanox OFED 5.1 e versioni successive, che non supportano le schede ConnectX3-Pro InfiniBand. Per le schede ConnectX-3 Pro InfiniBand è richiesta la versione MOFED 4.9 LTS. Queste immagini di macchine virtuali supportano solo le schede ConnextX-5 e InfiniBand più recenti. La matrice di supporto delle dimensioni della macchina virtuale per InfiniBand OFED in queste immagini di macchine virtuali HPC è la seguente:
Supporto dei driver GPU
Attualmente solo le immagini di macchine virtuali Ubuntu-HPC e le immagini di macchine virtuali 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: le dimensioni della machina virtuale NDv2 e 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 Gen 1. Il supporto di generazione 2 è indicato anche con un "01" alla fine dell'URN o della versione dell'immagine.
Macchine virtuali abilitate per SR-IOV
Immagini di macchine virtuali HPC Ubuntu
Per le macchine virtuali con supporto RDMA abilitate per SR-IOV, le immagini di macchine virtuali Ubuntu-HPC versioni 18.04, 20.04 e 22.04 sono adatte. Queste immagini di macchine virtuali sono preconfigurate con i driver Mellanox OFED per RDMA, driver GPU NVIDIA, stack di software di calcolo GPU (CUDA, NCCL), oltre a librerie MPI e pacchetti di elaborazione scientifica comunemente usati. Fare riferimento alla matrice di supporto delle dimensioni di macchine virtuali.
Le versioni disponibili o più recenti delle immagini di macchine virtuali possono essere elencate con le informazioni seguenti usando l'interfaccia della riga di comando o dal marketplace.
"publisher": "Microsoft-DSVM", "offer": "Ubuntu-HPC",
Gli script usati nella creazione delle immagini di macchine virtuali Ubuntu-HPC da un'immagine del marketplace Ubuntu di base si trovano nel repository azhpc-images.
Immagini di macchine virtuali HPC AlmaLinux
Per le macchine virtuali con supporto RDMA abilitate per SR-IOV, le immagini di macchine virtuali AlmaLinux-HPC versioni 8.5, 8.6 e 8.7 sono adatte. Queste immagini di macchine virtuali sono preconfigurate con i driver Mellanox OFED per RDMA, driver GPU NVIDIA, stack di software di calcolo GPU (CUDA, NCCL), oltre a librerie MPI e pacchetti di elaborazione scientifica comunemente usati. Fare riferimento alla matrice di supporto delle dimensioni di macchine virtuali.
Le versioni disponibili o più recenti delle immagini di macchine virtuali possono essere elencate con le informazioni seguenti usando l'interfaccia della riga di comando o dal 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.
Altre informazioni sulle immagini di macchine virtuali Ubuntu-HPC e AlmaLinux-HPC e su come distribuirle sono disponibili in Immagini di macchine virtuali HPC di Azure.
Immagini di macchine virtuali RHEL
Le immagini di macchine virtuali non HPC basate su RHEL di base 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 la 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 nel marketplace sono supportate per le macchine virtuali con supporto per RDMA abilitate o meno per SR-IOV. Altre informazioni sull'abilitazione di InfiniBand e la configurazione di MPI nelle macchine virtuali.
- Le istruzioni per abilitare InfiniBand nelle immagini delle macchine virtuali Ubuntu sono disponibili in un articolo della TechCommunity.
Nota
Mellanox OFED 5.1 e versioni successive non supportano le schede InfiniBand ConnectX3-Pro nelle dimensioni delle macchine virtuali serie N abilitate per SR-IOV con FDR InfiniBand (ad esempio NCv3). Usare la versione LTS Mellanox OFED 4.9-0.1.7.0 o precedente nelle macchine virtuali serie N con schede ConnectX3-Pro. Per altre informazioni, vedere Driver InfiniBand Linux.
Immagini di macchine virtuali SUSE Linux Enterprise Server
Sono supportate le immagini di macchine virtuali 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 nel Marketplace. Queste immagini di macchine virtuali vengono precaricate con i driver Network Direct per RDMA (nelle dimensioni delle macchine virtuali 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 LIS (Linux Integration Services) nelle distribuzioni del sistema operativo supportate, in particolare se la distribuzione viene eseguita usando un'immagine personalizzata o una versione precedente del sistema operativo, ad esempio 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 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
Disabilitare cpupower
sudo service cpupower status
Se abilitato, disabilitarlo:
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 ottenere 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.