Abilitare InfiniBand

Attenzione

Questo articolo fa riferimento a CentOS, una distribuzione Linux prossima allo stato EOL (End of Life, fine del ciclo di vita). Valutare le proprie esigenze e pianificare di conseguenza. Per ulteriori informazioni, consultare la Guida alla fine del ciclo di vita di CentOS.

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

Le macchine virtuali serie HB e serie N compatibili conRDMA comunicano tramite la rete InfiniBand a bassa latenza e larghezza di banda elevata. La funzionalità RDMA su un'interconnessione di questo tipo è fondamentale per migliorare la scalabilità e le prestazioni dei carichi di lavoro HPC e di intelligenza artificiale su nodi distribuiti. Le macchine virtuali serie HB e serie N abilitate per InfiniBand sono connesse in un albero di grasso non bloccatore con una progettazione di diametro basso per prestazioni RDMA ottimizzate e coerenti.

Esistono diversi modi per abilitare InfiniBand nelle dimensioni delle macchine virtuali in grado di supportare.

Immagini di macchine virtuali con driver InfiniBand

Vedere Immagini vm per un elenco delle immagini di vm supportate nel Marketplace, che vengono precaricati con driver InfiniBand (per vm SR-IOV o non SR-IOV) oppure possono essere configurati con i driver appropriati per le macchine virtuali con supporto per RDMA. Le immagini di vm Ubuntu-HPC e AlmaLinux-HPC nel marketplace sono il modo più semplice per iniziare.

Estensioni macchina virtuale del driver InfiniBand

In Linux, l'estensione della macchina virtuale InfiniBandDriverLinux può essere usata per installare i driver Mellanox OFED e abilitare InfiniBand nelle macchine virtuali SERIE HB e serie N abilitate per SR-IOV.

In Windows, l'estensione macchina virtuale InfiniBandDriverWindows installa i driver Windows Network Direct (in macchine virtuali non SR-IOV) o i driver Mellanox OFED (nelle macchine virtuali SR-IOV) per la connettività RDMA. In determinate distribuzioni di istanze A8 e A9, l'estensione HpcVmDrivers viene aggiunta automaticamente. Si noti che l'estensione macchina virtuale HpcVmDrivers è deprecata; non verrà aggiornato.

Per aggiungere l'estensione macchina virtuale a una macchina virtuale, è possibile usare i cmdlet di Azure PowerShell. Per altre informazioni, vedere Estensioni e funzionalità della macchina virtuale. È anche possibile usare estensioni delle macchine virtuali nel modello di distribuzione classico.

Installazione manuale

I driver Mellanox OpenFabrics (OFED) possono essere installati manualmente nelle macchine virtuali serie HB e serie N abilitate perSR-IOV.

Linux

I driver OFED per Linux possono essere installati con l'esempio seguente. Anche se l'esempio qui è per RHEL/CentOS, ma i passaggi sono generali e possono essere usati per qualsiasi sistema operativo Linux compatibile, ad esempio Ubuntu (18.04, 19.04, 20.04) e SLES (12 SP4+ e 15). Altri esempi per altre distribuzioni sono disponibili nel repository azhpc-images. Anche i driver posta in arrivo funzionano, ma i driver Mellanox OFED offrono altre funzionalità.

MLNX_OFED_DOWNLOAD_URL=http://content.mellanox.com/ofed/MLNX_OFED-5.0-2.1.8.0/MLNX_OFED_LINUX-5.0-2.1.8.0-rhel7.7-x86_64.tgz
# Optionally verify checksum
wget --retry-connrefused --tries=3 --waitretry=5 $MLNX_OFED_DOWNLOAD_URL
tar zxvf MLNX_OFED_LINUX-5.0-2.1.8.0-rhel7.7-x86_64.tgz

KERNEL=( $(rpm -q kernel | sed 's/kernel\-//g') )
KERNEL=${KERNEL[-1]}
# Uncomment the lines below if you are running this on a VM
#RELEASE=( $(cat /etc/centos-release | awk '{print $4}') )
#yum -y install http://olcentgbl.trafficmanager.net/centos/${RELEASE}/updates/x86_64/kernel-devel-${KERNEL}.rpm
sudo yum install -y kernel-devel-${KERNEL}
sudo ./MLNX_OFED_LINUX-5.0-2.1.8.0-rhel7.7-x86_64/mlnxofedinstall --kernel $KERNEL --kernel-sources /usr/src/kernels/${KERNEL} --add-kernel-support --skip-repo

Windows

Per Windows, scaricare e installare Mellanox OFED per i driver di Windows.

Abilitare IP su InfiniBand (IB)

Se si prevede di eseguire processi MPI, in genere non è necessario IPoIB. La libreria MPI userà l'interfaccia dei verbi per la comunicazione IB (a meno che non si usi in modo esplicito il canale TCP/IP della libreria MPI). Tuttavia, se si dispone di un'app che usa TCP/IP per la comunicazione e si vuole eseguire su IB, è possibile usare IPoIB sull'interfaccia IB. Usare i comandi seguenti (per RHEL/CentOS) per abilitare l'indirizzo IP su InfiniBand.

Importante

Per evitare problemi, assicurarsi di non eseguire versioni precedenti di Microsoft Azure Linux Agent (waagent). È consigliabile usare almeno la versione 2.4.0.2 prima di abilitare IP tramite IB.

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

Passaggi successivi

  • 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.