Usar instâncias RDMA ou GPU em pools de lotes

Atenção

Este artigo faz referência ao CentOS, uma distribuição Linux que está se aproximando do status de Fim da Vida Útil (EOL). Por favor, considere o seu uso e planejamento de acordo. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.

Para executar determinados trabalhos em lote, você pode aproveitar os tamanhos de VM do Azure projetados para computação em larga escala. Por exemplo:

  • Para executar cargas de trabalho MPI de várias instâncias, escolha a série H ou outros tamanhos que tenham uma interface de rede para RDMA (Acesso Remoto Direto à Memória). Esses tamanhos se conectam a uma rede InfiniBand para comunicação entre nós, o que pode acelerar aplicativos MPI.

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

Este artigo fornece orientações e exemplos para usar alguns dos tamanhos especializados do Azure em pools de lotes. Para especificações e antecedentes, consulte:

  • Tamanhos de VM de computação de alto desempenho (Linux, Windows)

  • Tamanhos de VM habilitados para GPU (Linux, Windows)

Nota

Determinados tamanhos de VM podem não estar disponíveis nas regiões onde você cria suas contas de lote. Para verificar se um tamanho está disponível, consulte Produtos disponíveis por região e Escolha um tamanho de VM para um pool de lotes.

Dependências

Os recursos RDMA ou GPU de tamanhos de computação intensiva em Batch são suportados apenas em determinados sistemas operacionais. (A lista de sistemas operacionais suportados é um subconjunto daqueles suportados para máquinas virtuais criadas nesses tamanhos.) Dependendo de como você cria seu pool de lotes, talvez seja necessário instalar ou configurar driver adicional ou outro software nos nós. As tabelas a seguir resumem essas dependências. Consulte os artigos vinculados para obter detalhes. Para obter opções para configurar pools de lotes, consulte mais adiante neste artigo.

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

Tamanho Funcionalidade Sistemas operativos Software necessário Definições do conjunto
H16r, H16mr
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMA Ubuntu 22.04 LTS, ou
HPC baseada em CentOS
(Azure Marketplace)
Intel MPI 5

Drivers RDMA Linux
Habilitar a comunicação entre nós, desabilitar a execução simultânea de tarefas
Série NC, NCv2, NCv3, NDv2 GPU Tesla NVIDIA (varia de acordo com a série) Ubuntu 22.04 LTS, ou
CentOS 8,1
(Azure Marketplace)
Drivers NVIDIA CUDA ou CUDA Toolkit N/A
NV, NVv2, NVv4 séries NVIDIA Tesla M60 GPU Ubuntu 22.04 LTS, ou
CentOS 8,1
(Azure Marketplace)
Drivers NVIDIA GRID N/A

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

Importante

Este documento faz referência a uma versão de lançamento do Linux que está se aproximando ou em Fim da Vida Útil (EOL). Por favor, considere atualizar para uma versão mais atual.

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

Tamanho Funcionalidade Sistemas operativos Software necessário Definições do conjunto
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

Drivers RDMA do Windows
Habilitar a comunicação entre nós, desabilitar a execução simultânea de tarefas
Série NC, NCv2, NCv3, ND, NDv2 GPU Tesla NVIDIA (varia de acordo com a série) Windows Server 2016 ou
2012 R2 (Azure Marketplace)
Drivers NVIDIA CUDA ou CUDA Toolkit N/A
NV, NVv2, NVv4 séries 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 também incluem GPUs NVIDIA Tesla

Pools do Windows - Configuração de Serviços de Nuvem

Aviso

Os pools de Configuração de Serviços de Nuvem foram preteridos. Em vez disso, use pools de Configuração de Máquina Virtual.

Tamanho Funcionalidade Sistemas operativos Software necessário Definições do conjunto
H16r, H16mr RDMA Windows Server 2016, 2012 R2, 2012 ou
2008 R2 (família de SO convidado)
Microsoft MPI 2012 R2 ou posterior, ou
Intel MPI 5

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

Nota

Não há suporte para tamanhos da série N em pools de Configuração de Serviços de Nuvem.

Opções de configuração do pool

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

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

  • Crie uma imagem de VM personalizada do Windows ou Linux na qual você instalou drivers, software ou outras configurações necessárias para o tamanho da VM.

  • Crie um pacote de aplicativo em lote a partir de um driver compactado ou instalador de aplicativo e configure o Batch para implantar o pacote em nós de pool e instalar uma vez quando cada nó for criado. Por exemplo, se o pacote do aplicativo for um instalador, crie uma linha de comando de tarefa inicial para instalar silenciosamente o aplicativo em todos os nós do pool. Considere usar um pacote de aplicativo e uma tarefa de início de pool se sua carga de trabalho depender de uma versão específica do driver.

    Nota

    A tarefa de início deve ser executada com permissões elevadas (admin) e deve aguardar o êxito. Tarefas de execução longa aumentarão o tempo para provisionar um pool de lotes.

Exemplo: drivers de GPU NVIDIA no pool de VMs do Windows NC

Para executar aplicativos CUDA em um pool de nós NC do Windows, você precisa instalar drivers de GPU NVDIA. As etapas de exemplo a seguir usam um pacote de aplicativo para instalar os drivers de GPU NVIDIA. Você pode escolher essa opção se sua carga de trabalho depender de uma versão específica do driver da GPU.

  1. Transfira um pacote de configuração para os controladores GPU no Windows Server 2016 a partir do Web site da NVIDIA - por exemplo, versão 411.82. Salve o arquivo localmente usando um nome curto como GPUDriverSetup.exe.
  2. Crie um arquivo zip do pacote.
  3. Carregue o pacote para a sua conta Batch. Para conhecer as etapas, consulte as diretrizes de pacotes de aplicativos. Especifique um ID de aplicativo, como GPUDriver, e uma versão, como 411.82.
  4. Usando as APIs de lote ou o portal do Azure, crie um pool na configuração da máquina virtual com o número desejado de nós e escala. A tabela a seguir mostra configurações de exemplo para instalar os drivers de GPU NVIDIA silenciosamente usando uma tarefa de início:
Definição Value
Tipo de Imagem Marketplace (Linux/Windows)
Fabricante MicrosoftWindowsServer
Oferta WindowsServer
Sku 2016-Datacenter
Tamanho do nó Padrão NC6
Referências do pacote de aplicativos GPUDriver, versão 411.82
Iniciar tarefa ativada True
Linha de comandos - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s"
Identidade do usuário - Pool autouser, admin
Espere pelo sucesso - True

Exemplo: drivers de GPU NVIDIA em um pool de VMs Linux NC

Para executar aplicativos CUDA em um pool de nós Linux NC, você precisa instalar os drivers de GPU NVIDIA Tesla necessários a partir do CUDA Toolkit. As seguintes etapas de exemplo criam e implantam uma imagem personalizada do Ubuntu 22.04 LTS com os drivers da GPU:

  1. Implante uma VM da série NC do Azure executando o Ubuntu 22.04 LTS. Por exemplo, crie a VM na região Centro-Sul dos EUA.
  2. Adicione a extensão NVIDIA GPU Drivers à VM usando o portal do Azure, um computador cliente que se conecta à assinatura do Azure ou o Azure Cloud Shell. Como alternativa, siga as etapas para se conectar à VM e instalar os drivers CUDA manualmente.
  3. Siga as etapas para criar uma imagem da Galeria de Computação do Azure para o Batch.
  4. Crie uma conta em lote em uma região que ofereça suporte a VMs NC.
  5. Usando as APIs de lote ou o portal do Azure, crie um pool usando a imagem personalizada e com o número desejado de nós e escala. A tabela a seguir mostra as configurações de pool de exemplo para a imagem:
Definição Value
Tipo de Imagem Imagem Personalizada
Imagem personalizada Nome da imagem
Agente de nó SKU batch.node.ubuntu 22,04
Tamanho do nó Padrão NC6

Exemplo: Microsoft MPI em um pool de VMs do Windows H16r

Para executar aplicativos MPI do Windows em um pool de nós de VM H16r do Azure, você precisa configurar a extensão HpcVmDrivers e instalar o Microsoft MPI. Aqui estão etapas de exemplo para implantar uma imagem personalizada do Windows Server 2016 com os drivers e o software necessários:

  1. Implante uma VM do Azure H16r executando o Windows Server 2016. Por exemplo, crie a VM na região Oeste dos EUA.
  2. Adicione a extensão HpcVmDrivers à VM executando um comando do Azure PowerShell a partir de um computador cliente que se conecta à sua assinatura do Azure ou usando o Azure Cloud Shell.
  3. Faça uma conexão de Área de Trabalho Remota com a VM.
  4. Baixe o pacote de instalação (MSMpiSetup.exe) para a versão mais recente do Microsoft MPI e instale o Microsoft MPI.
  5. Siga as etapas para criar uma imagem da Galeria de Computação do Azure para o Batch.
  6. Usando as APIs de lote ou o portal do Azure, crie um pool usando a Galeria de Computação do Azure e com o número desejado de nós e escala. A tabela a seguir mostra as configurações de pool de exemplo para a imagem:
Definição Value
Tipo de Imagem Imagem Personalizada
Imagem personalizada Nome da imagem
Agente de nó SKU amd64 em lote.node.windows
Tamanho do nó Padrão H16r
Comunicação de internode ativada True
Máximo de tarefas por nó 1

Exemplo: Intel MPI em um pool de VMs Linux H16r

Para executar aplicativos MPI em um pool de nós da série Linux HB, uma opção é usar a imagem HPC 8.1 baseada em CentOS do Azure Marketplace. Os drivers Linux RDMA e Intel MPI estão pré-instalados. Esta imagem também suporta cargas de trabalho de contêiner do Docker.

Usando as APIs de lote ou o portal do Azure, crie um pool usando essa imagem e com o número desejado de nós e escala. A tabela a seguir mostra as configurações do pool de exemplo:

Definição Value
Tipo de Imagem Marketplace (Linux/Windows)
Fabricante OpenLogic
Oferta CentOS-HPC
Sku 8.1
Tamanho do nó Padrão H16r
Comunicação de internode ativada True
Máximo de tarefas por nó 1

Próximos passos

  • Para executar trabalhos MPI em um pool de lotes do Azure, consulte os exemplos do Windows ou Linux .