Usare istanze GPU o RDMA nei pool di Batch
Per eseguire determinati processi Batch, è possibile sfruttare le dimensioni delle macchine virtuali di Azure progettate per il calcolo su larga scala. Ad esempio:
Per eseguire carichi di lavoro MPI a istanze multipla, scegliere HB, HC, NC o serie ND o altre dimensioni con un'interfaccia di rete per Accesso diretto alla memoria remota (RDMA). Le VM di queste dimensioni si connettono a una rete InfiniBand per la comunicazione tra i nodi, che consente di velocizzare le applicazioni MPI.
Per le applicazioni CUDA, scegliere le dimensioni della serie N, che includono schede GPU (Graphics Processing Unit, unità di elaborazione grafica) NVIDIA Tesla.
Questo articolo fornisce istruzioni ed esempi per usare alcune delle dimensioni specializzate di Azure nei pool di Batch. Per le specifiche e le informazioni di base, vedere:
Nota
Determinate dimensioni di macchine virtuali potrebbero non essere disponibili nelle aree in cui si crea l'account Batch. Per verificare la disponibilità di una dimensione, vedere Prodotti disponibili in base all'area e Scegliere una dimensione di macchina virtuale per un pool di Batch.
Dipendenze
Le funzionalità RDMA o GPU delle dimensioni a elevato utilizzo di calcolo in Batch sono supportate solo in alcuni sistemi operativi. I sistemi operativi supportati per queste dimensioni di vm includono solo un subset di quelli disponibili per la creazione di macchine virtuali. A seconda della modalità di creazione del pool di Batch, potrebbe essere necessario installare o configurare driver aggiuntivi o altri software nei nodi. Le tabelle seguenti riepilogano queste dipendenze. Vedere gli articoli correlati per informazioni dettagliate. Per le opzioni per la configurazione di pool di Batch, vedere più avanti in questo articolo.
Pool Linux - Configurazione della macchina virtuale
Dimensione | Funzionalità | Sistemi operativi | Requisiti software | Impostazioni pool |
---|---|---|---|---|
H16r, H16mr NC24r, NC24rs_v2, NC24rs_v3 e ND24rs* |
RDMA | Ubuntu 22.04 LTS (Azure Marketplace) |
Intel MPI 5 Driver Linux RDMA |
Abilitare la comunicazione tra i nodi, disabilitare l'esecuzione di attività simultanee |
Serie NCv3, NDv2, NDv4, NDv5 | GPU NVIDIA Tesla (varia in base alla serie) | Ubuntu 22.04 LTS (Azure Marketplace) |
Driver NVIDIA CUDA o CUDA Toolkit | N/D |
Serie NVv3, NVv4, NVv5 | GPU di visualizzazione accelerata | Ubuntu 22.04 LTS (Azure Marketplace) |
Driver NVIDIA GRID (se necessario) | N/D |
*Le dimensioni della serie N idonee per RDMA includono anche GPU NVIDIA Tesla
Importante
Questo documento fa riferimento a una versione di Linux prossima o alla fine del servizio (EOL). Prendere in considerazione l'aggiornamento a una versione più recente.
Pool di Windows - Configurazione macchina virtuale
Dimensione | Funzionalità | Sistemi operativi | Requisiti software | Impostazioni pool |
---|---|---|---|---|
H16r, H16mr NC24r, NC24rs_v2, NC24rs_v3 e ND24rs* |
RDMA | Windows Server 2016, 2012 R2 o 2012 (Azure Marketplace) |
Microsoft MPI 2012 R2 o versioni successive oppure Intel MPI 5 Driver Windows RDMA |
Abilitare la comunicazione tra i nodi, disabilitare l'esecuzione di attività simultanee |
Serie NC, NCv2, NCv3, ND e NDv2 | GPU NVIDIA Tesla (varia in base alla serie) | Windows Server 2016 o 2012 R2 (Azure Marketplace) |
Driver NVIDIA CUDA o CUDA Toolkit | N/D |
NV, NVv2, serie NVv4 | GPU NVIDIA Tesla M60 | Windows Server 2016 oppure 2012 R2 (Azure Marketplace) |
Driver NVIDIA GRID | N/D |
*Le dimensioni della serie N idonee per RDMA includono anche GPU NVIDIA Tesla
Pool di Windows - Configurazione Servizi cloud
Avviso
Servizi cloud pool di configurazione sono deprecati. Usare invece pool di configurazione macchina virtuale.
Dimensione | Funzionalità | Sistemi operativi | Requisiti software | Impostazioni pool |
---|---|---|---|---|
H16r, H16mr | RDMA | Windows Server 2016, 2012 R2, 2012 o 2008 R2 (famiglia del sistema operativo guest) |
Microsoft MPI 2012 R2 o versioni successive oppure Intel MPI 5 Driver Windows RDMA |
Abilitare la comunicazione tra i nodi, disabilitare l'esecuzione di attività simultanee |
Nota
Le dimensioni delle serie N non sono supportate nei pool di configurazione Servizi cloud.
Opzioni di configurazione pool
Per configurare una dimensione di macchina virtuale specializzata per il pool di Batch, sono disponibili diverse opzioni per installare il software o i driver necessari:
Per i pool nella configurazione della macchina virtuale, scegliere un'immagine di macchina virtuale di Azure Marketplace preconfigurata con i driver e il software preinstallato. Esempi:
Data Science Virtual Machine per Linux o Windows: include i driver NVIDIA CUDA
Immagini Linux per i carichi di lavoro dei contenitori di Batch che includono anche i driver GPU e RDMA:
Ubuntu Server (con driver GPU e RDMA) per pool di contenitori di Azure Batch
Creare un'immagine di macchina virtuale Windows o Linux personalizzata con driver, software o altre impostazioni installate necessarie per le dimensioni della macchina virtuale.
Creare un pacchetto dell'applicazione Batch da un driver compresso o un programma di installazione dell'applicazione. Configurare quindi Batch per distribuire questo pacchetto nei nodi del pool e installarlo una volta quando viene creato ogni nodo. Se ad esempio il pacchetto dell'applicazione è un programma di installazione, creare una riga di comando di attività di avvio per installare automaticamente l'app in tutti i nodi del pool. Valutare la possibilità di usare un pacchetto dell'applicazione e un'attività di avvio del pool se il carico di lavoro dipende da una versione particolare dei driver.
Nota
L'attività di avvio deve essere eseguita con autorizzazioni con privilegi elevati (amministratore) ed è necessario attendere l'esito positivo. Le attività a esecuzione prolungata aumenteranno il tempo necessario per effettuare il provisioning di un pool di Batch.
Esempio: driver GPU NVIDIA nel pool di macchine virtuali NC Windows
Per eseguire applicazioni CUDA in un pool di nodi nc di Windows, è necessario installare i driver GPU NVIDIA. La procedura di esempio seguente usa un pacchetto dell'applicazione per installare i driver NVIDIA GPU. È possibile scegliere questa opzione se il carico di lavoro dipende da una versione specifica dei driver GPU.
- Scaricare un pacchetto di installazione per i driver GPU in Windows Server 2016 dal sito Web di NVIDIA, ad esempio la versione 411.82. Salvare il file in locale usando un nome breve, ad esempio GPUDriverSetup.exe.
- Creare un file zip del pacchetto.
- Caricare il pacchetto nell'account Batch. Per istruzioni, vedere il materiale sussidiario sui pacchetti di applicazioni. Specificare un ID applicazione, ad esempio GPUDriver, e una versione, ad esempio 411.82.
- Usando l'API Batch o il portale di Azure, creare un pool nella configurazione della macchina virtuale con il numero di nodi e la scalabilità desiderati. La tabella seguente illustra le impostazioni di esempio per installare i driver NVIDIA GPU automaticamente usando un'attività di avvio:
Impostazione | Valore |
---|---|
Tipo di immagine | Marketplace (Linux/Windows) |
Autore | MicrosoftWindowsServer |
Offerta | WindowsServer |
Sku | 2016-Datacenter |
Dimensioni nodo | NC6 Standard |
Riferimenti ai pacchetti dell'applicazione | GPUDriver, versione 411.82 |
Attività di avvio abilitate | Vero Riga di comando - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s" Identità utente: utente automatico pool, amministratore Attendere il completamento dell'operazione: True |
Esempio: driver GPU NVIDIA in un pool di macchine virtuali NC Linux
Per eseguire applicazioni CUDA in un pool di nodi NC di Linux, si devono installare i driver NVIDIA Tesla GPU necessari da CUDA Toolkit. I passaggi di esempio seguenti creano e distribuiscono un'immagine LTS Ubuntu 22.04 personalizzata con i driver GPU:
- Distribuire una macchina virtuale serie NC di Azure che esegue Ubuntu 22.04 LTS. È ad esempio possibile creare la macchina virtuale nell'area Stati Uniti centro-meridionali.
- Aggiungere l'estensione di driver NVIDIA GPU alla macchina virtuale usando il portale di Azure, un computer client che si connette alla sottoscrizione di Azure o Azure Cloud Shell. In alternativa, seguire questa procedura per connettersi alla macchina virtuale e installare i driver CUDA manualmente.
- Seguire la procedura per creare un'immagine della raccolta di calcolo di Azure per Batch.
- Creare un account in un'area che supporta le VM NC.
- Usando l'API Batch o il portale di Azure, creare un pool usando l'immagine personalizzata e con il numero di nodi e la scalabilità desiderati. La tabella seguente illustra le impostazioni di esempio del pool per l'immagine:
Impostazione | Valore |
---|---|
Tipo di immagine | Immagine personalizzata |
Immagine personalizzata | Nome dell'immagine |
SKU agente nodo | batch.node.ubuntu 22.04 |
Dimensioni nodo | NC6 Standard |
Esempio: Microsoft MPI in un pool di macchine virtuali H16r di Windows
Per eseguire le applicazioni Windows MPI in un pool di nodi di macchine virtuali di Azure H16r, è necessario configurare l'estensione HpcVmDrivers e installare Microsoft MPI. Di seguito è riportata la procedura di esempio per distribuire un'immagine personalizzata di Windows Server 2016 con il software e i driver necessari:
- Distribuire una macchina virtuale di Azure H16r che esegue Windows Server 2016. È ad esempio possibile creare la macchina virtuale nell'area Stati Uniti occidentali.
- Aggiungere l'estensione HpcVmDrivers alla macchina virtuale eseguendo un comando di Azure PowerShell da un computer client che si connette alla sottoscrizione di Azure o usando Azure Cloud Shell.
- Stabilire una connessione Desktop remoto alla macchina virtuale.
- Scaricare il pacchetto di installazione (MSMpiSetup.exe) per la versione più recente di Microsoft MPI e installare Microsoft MPI.
- Seguire la procedura per creare un'immagine della raccolta di calcolo di Azure per Batch.
- Usando le API Batch o portale di Azure, creare un pool usando la raccolta di calcolo di Azure e con il numero desiderato di nodi e scalabilità. La tabella seguente illustra le impostazioni di esempio del pool per l'immagine:
Impostazione | Valore |
---|---|
Tipo di immagine | Immagine personalizzata |
Immagine personalizzata | Nome dell'immagine |
SKU agente nodo | batch.node.windows amd64 |
Dimensioni nodo | H16r Standard |
Comunicazione tra nodi abilitata | Vero |
Numero massimo di attività per ogni nodo | 1 |