Usa instâncias RDMA ou GPU em pools de lotes

Para executar certos trabalhos em lote, pode aproveitar os tamanhos de VM do Azure concebidos para computação em grande escala. Por exemplo:

  • Para executar cargas de trabalho MPI de várias instâncias, escolha as séries HB, HC, NC ou ND, ou outros tamanhos que disponham de uma interface de rede com Acesso Direto à Memória Remota (RDMA). Estes tamanhos de instância ligam-se a uma rede InfiniBand para comunicação entre nós, o que pode acelerar as aplicações MPI.

  • Para aplicações CUDA, escolha tamanhos da série N que incluam placas de processamento gráfico (GPU) NVIDIA Tesla.

Este artigo fornece orientações e exemplos para usar alguns dos tamanhos especializados do Azure em pools por lote. Para especificações e contexto, veja:

Nota

Certos tamanhos de VM podem não estar disponíveis nas regiões onde crias as tuas contas em lote. Para verificar se existe um tamanho disponível, consulte Produtos disponíveis por região e Escolha um tamanho de VM para um pool de lotes.

Dependências

As capacidades RDMA ou GPU de tamanhos intensivos em computação no Batch são suportadas apenas em certos sistemas operativos. Os sistemas operativos suportados para estes tamanhos de VM incluem apenas um subconjunto dos disponíveis para criação de máquinas virtuais. Dependendo de como crias o teu pool de lotes, podes precisar de instalar ou configurar drivers extra ou outro software nos nós. As tabelas seguintes resumem estas dependências. Consulte os artigos ligados para mais detalhes. Para opções para configurar pools Batch, veja mais adiante neste artigo.

Pools Linux - Configuração de máquinas virtuais

Tamanho Capacidade Sistemas operativos Software necessário Configurações do pool
H16r, H16mr
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMA Ubuntu 22.04 LTS
(Azure Marketplace)
Intel MPI 5

Drivers RDMA para Linux
Ativar a comunicação entre nós, desativar a execução simultânea de tarefas
Séries NCv3, NDv2, NDv4, NDv5 GPU NVIDIA Tesla (varia consoante a série) Ubuntu 22.04 LTS
(Azure Marketplace)
Controladores do NVIDIA CUDA ou do CUDA Toolkit N/A
Séries NVv3, NVv4, NVv5 GPU de Visualização Acelerada Ubuntu 22.04 LTS
(Azure Marketplace)
Controladores NVIDIA GRID ou controladores de GPU AMD N/A

*Os tamanhos da série N compatíveis com RDMA incluem também GPUs NVIDIA Tesla

Importante

Este documento faz referência a uma versão do Linux que se aproxima do fim de vida ou já se encontra em fim de vida (EOL). Considera atualizar para uma versão mais recente.

Conjuntos do Windows - Configuração da Máquina Virtual

Tamanho Capacidade Sistemas operativos Software necessário Configurações do pool
H16r, H16mr
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMA Windows Server 2016, 2012 R2, ou
2012 (Azure Marketplace)
Microsoft MPI 2012 R2 ou posterior, ou
Intel MPI 5

Controladores RDMA do Windows
Ativar a comunicação entre nós, desativar a execução simultânea de tarefas
Séries NC, NCv2, NCv3, ND, NDv2 GPU NVIDIA Tesla (varia consoante a série) Windows Server 2016 ou
2012 R2 (Azure Marketplace)
Controladores do NVIDIA CUDA ou do CUDA Toolkit N/A
Séries NV, NVv2, NVv4 NVIDIA Tesla M60 GPU Windows Server 2016 ou
2012 R2 (Azure Marketplace)
Drivers NVIDIA GRID N/A

*Os tamanhos da série N compatíveis com RDMA incluem também GPUs NVIDIA Tesla

Conjuntos do Windows - Configuração dos Serviços na Nuvem

Aviso

Os pools de configuração de Serviços Cloud estão obsoletos. Utilize, em vez disso, conjuntos de configuração de máquinas virtuais.

Tamanho Capacidade Sistemas operativos Software necessário Configurações do pool
H16r, H16mr RDMA Windows Server 2016, 2012 R2, 2012, ou
2008 R2 (família de sistemas operativos convidados)
Microsoft MPI 2012 R2 ou posterior, ou
Intel MPI 5

Controladores RDMA do Windows
Permitir a comunicação entre nós,
Desativar execução simultânea de tarefas

Nota

Os tamanhos da série N não são suportados em pools de Configuração de Serviços na Nuvem.

Opções de configuração do pool

Para configurar um tamanho de VM especializado para o seu pool Batch, tem várias opções para instalar o software ou drivers necessários:

  • Para pools na configuração de máquina virtual, escolha uma imagem VM do Azure Marketplace pré-configurada que tenha drivers e software pré-instalados. Examples:

  • Crie uma imagem personalizada de VM Windows ou Linux com os drivers, software ou outras definições instaladas necessárias para o tamanho da VM.

  • Instalar os controladores da GPU e de RDMA através da extensão da VM.

  • Crie um pacote Batch de aplicação a partir de um driver ou de um instalador de aplicação comprimido. Depois, configure o Batch para implementar este pacote nos nós do conjunto e instale-o uma única vez quando cada nó for criado. Por exemplo, se o pacote da aplicação for um instalador, crie uma linha de comandos de iniciar tarefa para instalar silenciosamente a aplicação em todos os nós do pool. Considera usar um pacote de aplicações e uma tarefa de início de pool se a tua carga de trabalho depender de uma versão específica do driver.

    Nota

    A tarefa de arranque tem de ser executada com permissões elevadas (de administrador) e tem de aguardar pela conclusão com êxito. Tarefas de longa duração aumentam o tempo para provisionar um pool Batch.

Exemplo: controladores de GPU NVIDIA num conjunto de máquinas virtuais NC em Windows

Para executar aplicações CUDA num conjunto de nós NC do Windows, é necessário instalar drivers da GPU NVIDIA. Os seguintes passos de exemplo utilizam um pacote de aplicação para instalar os drivers da GPU NVIDIA. Podes escolher esta opção se a tua carga de trabalho depender de uma versão específica do driver da GPU.

  1. Descarregue um pacote de configuração para os drivers da GPU no Windows Server 2016 no site da NVIDIA – por exemplo, a versão 411.82. Guarde o ficheiro localmente usando um nome curto como GPUDriverSetup.exe.
  2. Cria um ficheiro zip do pacote.
  3. Carregue o pacote para a sua conta Batch. Para os passos, consulte as orientações dos pacotes de aplicação . Especifique um ID de aplicação como GPUDriver, e uma versão como 411.82.
  4. Usando as APIs Batch ou o portal Azure, crie um pool na configuração da máquina virtual com o número desejado de nós e escale. A tabela seguinte mostra exemplos de definições para instalar silenciosamente os drivers da GPU NVIDIA usando uma tarefa inicial:
Definições Valor
Tipo de Imagem Marketplace (Linux/Windows)
Publisher MicrosoftWindowsServer
Offer WindowsServer
Sku 2016-Datacenter
Tamanho do nó NC6 Standard
Referências de pacotes de aplicação GPUDriver, versão 411.82
Tarefa de arranque ativada Verdadeiro
Linha de comandos - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s"
Identidade do utilizador - Autouser do pool, administrador
Espera pelo sucesso - Verdade

Exemplo: controladores de GPU da NVIDIA num conjunto de VMs NC com Linux

Para correr aplicações CUDA num pool de nós Linux NC, é necessário instalar os drivers necessários da GPU NVIDIA Tesla a partir do CUDA Toolkit. Os seguintes passos de exemplo criam e implementam uma imagem personalizada do Ubuntu 22.04 LTS com os drivers da GPU:

  1. Implemente uma VM do Azure da série NC com Ubuntu 22.04 LTS. Por exemplo, criar a VM na região do Centro-Sul dos EUA.
  2. Adicione a extensão NVIDIA GPU Drivers à VM usando o portal Azure, um computador cliente que se liga à subscrição Azure, ou Azure Cloud Shell. Em alternativa, siga os passos para se ligar à VM e instalar manualmente os drivers CUDA .
  3. Siga os passos para criar uma imagem da Azure Compute Gallery para o Azure Batch.
  4. Crie uma conta do Batch numa região que seja compatível com VMs NC.
  5. Usando as APIs em lote ou o portal Azure, crie um pool usando a imagem personalizada e com o número desejado de nós e escala. A tabela seguinte mostra as definições do pool de exemplos para a imagem:
Definições Valor
Tipo de Imagem Imagem Personalizada
Imagem Personalizada Nome da imagem
SKU do agente de nó batch.node.ubuntu 22.04
Tamanho do nó NC6 Standard

Exemplo: Microsoft MPI num pool de VM Windows H16r

Para executar aplicações Windows MPI num pool de nós VM Azure H16r, precisa de configurar a extensão HpcVmDrivers e instalar o Microsoft MPI. Aqui estão passos exemplos para implementar uma imagem personalizada do Windows Server 2016 com os drivers e software necessários:

  1. Implemente uma VM Azure H16r a correr Windows Server 2016. Por exemplo, criar a VM na região Oeste dos EUA.
  2. Adicione a extensão HpcVmDrivers à VM executando um comando Azure PowerShell a partir de um computador cliente que se liga à sua subscrição Azure, ou usando o Azure Cloud Shell.
  3. Faz uma ligação Ambiente de Trabalho Remoto à VM.
  4. Descarregue o pacote de configuração (MSMpiSetup.exe) para a versão mais recente do Microsoft MPI e instale Microsoft MPI.
  5. Siga os passos para criar uma imagem da Azure Compute Gallery para o Azure Batch.
  6. Usando as APIs Batch ou o portal Azure, crie um pool usando a Azure Compute Gallery e com o número desejado de nós e escala. A tabela seguinte mostra as definições do pool de exemplos para a imagem:
Definições Valor
Tipo de Imagem Imagem Personalizada
Imagem Personalizada Nome da imagem
SKU do agente de nó batch.node.windows amd64
Tamanho do nó Padrão H16r
Comunicação por entrenódos ativada Verdadeiro
Máximo de tarefas por nó 1

Passos seguintes

  • Para executar trabalhos MPI num pool Azure Batch, veja os exemplos para Windows ou Linux.