Usare istanze con supporto per RDMA o abilitate per GPU in pool di Batch

Per eseguire determinati processi Batch, è consigliabile sfruttare le dimensioni delle macchine virtuali di Azure progettate per il calcolo su larga scala. Per eseguire ad esempio carichi di lavoro MPI a istanze multiple è possibile scegliere le dimensioni A8, A9 o H che offrono un'interfaccia di rete per RDMA (Remote Direct Memory Access, accesso diretto a memoria remota). 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 è possibile 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:

  • Dimensioni delle VM High Performance Computing (Linux, Windows)

  • Dimensioni delle VM con supporto per GPU (Linux, Windows)

Limiti della sottoscrizione e dell'account

  • Quote: una o più quote di Azure possono limitare il numero o il tipo di nodi che possono essere aggiunti a un pool di Batch. È più probabile che vengano applicati limiti quando si scelgono dimensioni di VM con supporto per RDMA, abilitate per GPU o multicore. A seconda del tipo di account Batch creato, le quote possono essere applicabili all'account stesso o alla sottoscrizione.

    • Se l'account Batch è stato creato nella configurazione Servizio Batch, il limite deriva dalla quota di core dedicati per ogni account Batch. Per impostazione predefinita, la quota è pari a 20 core. Si applica una quota separata alle macchine virtuali a bassa priorità, se usate.

    • Se l'account è stato creato nella configurazione Sottoscrizione utente, la sottoscrizione limita il numero di core VM per ogni area. Vedere Sottoscrizione di Azure e limiti, quote e vincoli dei servizi. La sottoscrizione applica anche una quota a livello di area ad alcune dimensioni delle macchine virtuali, incluse le istanze HPC e GPU. Nella configurazione Sottoscrizione utente non vengono applicate quote aggiuntive all'account Batch.

    Potrebbe essere necessario aumentare una o più quote quando si usa una dimensione di macchina virtuale specializzata in Batch. Per richiedere un aumento della quota, è possibile aprire una richiesta di assistenza clienti online senza alcun addebito.

  • Disponibilità a livello di area: le VM a elevato utilizzo di calcolo 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.

Dipendenze

Le funzionalità RDMA e GPU delle dimensioni a elevato utilizzo di calcolo sono supportate solo in alcuni sistemi operativi. A seconda del sistema operativo, potrebbe essere necessario installare o configurare altri driver o altro software. 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, A8, A9 RDMA HPC SUSE Linux Enterprise Server 12 oppure
HPC basato su CentOS
(Azure Marketplace)
Intel MPI 5 Abilitare la comunicazione tra i nodi, disabilitare l'esecuzione di attività simultanee
Serie NC* GPU NVIDIA Tesla K80 Ubuntu 16.04 LTS.
Red Hat Enterprise Linux 7.3 oppure
CentOS-based 7.3
(Azure Marketplace)
Driver NVIDIA CUDA Toolkit 8.0 N/D
Serie NV GPU NVIDIA Tesla M60 Ubuntu 16.04 LTS
Red Hat Enterprise Linux 7.3
CentOS-based 7.3
(Azure Marketplace)
Driver NVIDIA GRID 4.3 N/D

*La connettività RDMA nelle macchine virtuali NC24r è supportata in HPC basato su CentOS 7.3 con Intel MPI.

Pool Windows - Configurazione della macchina virtuale

Dimensione Funzionalità Sistemi operativi Requisiti software Impostazioni pool
H16r, H16mr, A8, A9 RDMA Windows Server 2012 R2 oppure
Windows Server 2012 (Azure Marketplace)
Microsoft MPI 2012 R2 o versioni successive oppure
Intel MPI 5

Estensione di VM Azure HpcVMDrivers
Abilitare la comunicazione tra i nodi, disabilitare l'esecuzione di attività simultanee
Serie NC* GPU NVIDIA Tesla K80 Windows Server 2016 oppure
Windows Server 2012 R2 (Azure Marketplace)
Driver NVIDIA Tesla o CUDA Toolkit 8.0 N/D
Serie NV GPU NVIDIA Tesla M60 Windows Server 2016 oppure
Windows Server 2012 R2 (Azure Marketplace)
Driver NVIDIA GRID 4.3 N/D

*La connettività RDMA nelle macchine virtuali NC24r è supportata in Windows Server 2012 R2 con estensione HpcVMDrivers e Microsoft MPI o Intel MPI.

Pool Windows - Configurazione servizi cloud

Nota

Le dimensioni serie N non sono supportate nei pool di Batch con la configurazione Servizi cloud.

Dimensione Funzionalità Sistemi operativi Requisiti software Impostazioni pool
H16r, H16mr, A8, A9 RDMA Windows Server 2012 R2,
Windows Server 2012 oppure
Windows Server 2008 R2 (famiglia di sistemi operativi guest)
Microsoft MPI 2012 R2 o versioni successive oppure
Intel MPI 5

Estensione di VM Azure HpcVMDrivers
Abilitare la comunicazione tra i nodi,
disabilitare l'esecuzione di attività simultanee

Opzioni di configurazione pool

Per configurare una dimensione di macchina virtuale specializzata per il pool di Batch, le API e gli strumenti di Batch offrono diverse opzioni per installare il software o i driver, tra cui:

  • Attività di avvio: caricare un pacchetto di installazione come file di risorse in un account di archiviazione di Azure nella stessa area dell'account Batch. Creare una riga di comando di attività di avvio per installare automaticamente il file di risorse all'avvio del pool. Per altre informazioni, vedere la documentazione dell'API Rest.

    Nota

    L'attività di avvio deve essere eseguita con autorizzazioni con privilegi elevati (amministratore) ed è necessario attendere l'esito positivo.

  • Pacchetto dell'applicazione: aggiungere un pacchetto di installazione compresso all'account Batch e configurare un riferimento al pacchetto nel pool. Questa impostazione consente di caricare e decomprime il pacchetto in tutti i nodi del pool. Se il pacchetto è un programma di installazione, creare una riga di comando di attività di avvio per installare automaticamente l'app in tutti i nodi del pool. È anche possibile installare il pacchetto quando un'attività è pianificata per l'esecuzione in un nodo.

  • Immagine pool personalizzata: creare un'immagine personalizzata di VM Windows o Linux contenente driver, software o altre impostazioni necessarie per le dimensioni della VM. Se l'account Batch è stato creato nella configurazione Sottoscrizione utente, specificare l'immagine personalizzata per il pool di Batch. Le immagini personalizzate non sono supportate negli account nella configurazione Servizio Batch. Le immagini personalizzate possono essere usate solo nella configurazione della macchina virtuale.

    Importante

    Nei pool di Batch non è attualmente possibile usare un'immagine personalizzata creata con dischi gestiti o con l'archiviazione Premium.

  • Batch Shipyard configura automaticamente GPU e RDMA per usare in modo trasparente carichi di lavoro in contenitori in Azure Batch. Batch Shipyard si basa interamente su file di configurazione. Sono disponibili molte configurazioni di recipe di esempio che consentono carichi di lavoro GPU e RDMA, ad esempio il recipe CNTK GPU che preconfigura i driver GPU nelle macchine virtuali serie N e carica il software Microsoft Cognitive Toolkit come immagine Docker.

Esempio: Microsoft MPI in un pool di VM A8

Per eseguire applicazioni Windows MPI in un pool di nodi A8 di Azure è necessario installare un'implementazione MPI supportata. Di seguito è riportata la procedura per installare Microsoft MPI in un pool di Windows con un pacchetto di applicazione Batch.

  1. Scaricare il pacchetto di installazione (MSMpiSetup.exe) per la versione più recente di Microsoft MPI.
  2. Creare un file zip del pacchetto.
  3. Caricare il pacchetto nell'account Batch. Per istruzioni, vedere il materiale sussidiario sui pacchetti di applicazioni. Specificare un ID applicazione, ad esempio MSMPI, e una versione come 8.1.
  4. Usando l'API Batch o il portale di Azure, creare un pool nella configurazione dei servizi cloud con il numero di nodi e la scalabilità desiderati. La tabella seguente illustra le impostazioni di esempio per installare MPI in modalità automatica con un'attività di avvio:
Impostazione Valore
Tipo di immagine Servizi cloud
Famiglia del sistema operativo Windows Server 2012 R2 (famiglia del sistema operativo 4)
Dimensioni nodo A8 Standard
Comunicazione tra nodi abilitata True
Numero massimo di attività per ogni nodo 1
Riferimenti ai pacchetti dell'applicazione MSMPI
Attività di avvio abilitate True
Riga di comando - "cmd /c %AZ_BATCH_APP_PACKAGE_MSMPI#8.1%\\MSMpiSetup.exe -unattend -force"
Identità utente: utente automatico pool, amministratore
Attendere il completamento dell'operazione: True

Esempio: Driver NVIDIA Tesla in pool di VM NC

Per eseguire applicazioni CUDA in un pool di nodi NC di Linux è necessario installare CUDA Toolkit 8.0 nei nodi. Il Toolkit installa i driver GPU NVIDIA Tesla necessari. Ecco i passaggi di esempio per distribuire un'immagine personalizzata Ubuntu 16.04 LTS con i driver GPU:

  1. Distribuire una macchina virtuale NC6 di Azure che esegue Ubuntu 16.04 LTS. È ad esempio possibile creare la macchina virtuale nell'area Stati Uniti centro-meridionali. Assicurarsi di creare la macchina virtuale con archiviazione Standard e senza dischi gestiti.
  2. Seguire questa procedura per connettersi alla macchina virtuale e installare i driver CUDA.
  3. Effettuare il deprovisioning dell'agente Linux e quindi acquisire l'immagine della VM Linux usando i comandi dell'interfaccia della riga di comando di Azure 1.0. Per la procedura, vedere Acquisire una VM Linux in esecuzione su Azure. Prendere nota dell'URI dell'immagine. > [!IMPORTANT] > Non usare i comandi dell'interfaccia della riga di comando di Azure 2.0 per acquisire l'immagine per Azure Batch. I comandi dell'interfaccia della riga di comando di Azure 2.0 acquisiscono attualmente solo le VM create con dischi gestiti. >
  4. Creare un account Batch con la configurazione Sottoscrizione utente in un'area che supporta le VM NC.
  5. 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 URI dell'immagine nel formato https://yourstorageaccountdisks.blob.core.windows.net/system/Microsoft.Compute/Images/vhds/MyVHDNamePrefix-osDisk.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.vhd
SKU agente nodo batch.node.ubuntu 16.04
Dimensioni nodo NC6 Standard

Passaggi successivi

  • Per eseguire processi MPI in un pool di Azure Batch, vedere gli esempi per Windows o Linux.

  • Per esempi di carichi di lavoro GPU in Batch, vedere i recipe Batch Shipyard.