Configurar um cluster RDMA do Windows com HPC Pack para executar aplicações MPI

Importante

Os VM clássicos serão retirados a 1 de março de 2023.

Se utilizar recursos iaaS da ASM, por favor preencha a sua migração até 1 de março de 2023. Encorajamo-lo a fazer a troca mais cedo para aproveitar as muitas melhorias de funcionalidades em Azure Resource Manager.

Para mais informações, consulte a Migração dos seus recursos iaaS para a Azure Resource Manager até 1 de março de 2023.

Crie um cluster RDMA do Windows em Azure com o Microsoft HPC Pack e tamanhos HPC VM com capacidade RDMA para executar aplicações paralelas de Interface de Passagem de Mensagens (MPI). Quando configura os nós baseados em RDMA, baseados no Windows Server num cluster HPC Pack, as aplicações MPI comunicam eficientemente através de uma rede de baixa latência e alta produção em Azure que se baseia na tecnologia de acesso à memória direta remota (RDMA).

Opções de implementação do cluster HPC Pack

O Microsoft HPC Pack é uma ferramenta fornecida sem custos adicionais para criar clusters HPC no local ou em Azure para executar aplicações Windows ou Linux HPC. O HPC Pack inclui um ambiente de tempo de execução para a implementação da Interface de Passagem de Mensagens para Windows (MS-MPI). Quando utilizado com casos capazes de RDMA executar um sistema operativo suportado do Windows Server, o HPC Pack oferece uma opção eficiente para executar aplicações MPI do Windows que acedem à rede Azure RDMA.

Este artigo introduz dois cenários e ligações a orientações detalhadas para configurar um cluster RDMA do Windows com o Microsoft HPC Pack 2012 R2.

  • Cenário 1. Implementar instâncias de função de trabalhador intensiva de computação (PaaS)
  • Cenário 2. Implementar nós computacional em VMs intensivos de computação (IaaS)

Cenário 1: Implantar instâncias de função dos trabalhadores com grande intensidade de computação (PaaS)

A partir de um cluster HPC Pack existente, adicione recursos de computação extra em instâncias de função de trabalhador Azure (nó de Azure) em execução em um serviço de nuvem (PaaS). Esta funcionalidade, também chamada de "burst to Azure" do HPC Pack, suporta uma gama de tamanhos para as instâncias de função do trabalhador. Ao adicionar os nós Azure, especifique um dos tamanhos capazes de RDMA.

Seguem-se considerações e passos para rebentar com instâncias Azure capazes de RDMA de um cluster existente (tipicamente no local). Utilize procedimentos semelhantes para adicionar instâncias de função do trabalhador a um nó de cabeça do HPC Pack que é implantado num VM Azure.

Nota

Para um tutorial explodir para Azure com HPC Pack, consulte Configurar um cluster híbrido com o HPC Pack. Note as considerações nos seguintes passos que se aplicam especificamente aos nós Azure com capacidade de RDMA.

Explosão em Azure

Passos

  1. Implementar e configurar um nó de cabeça HPC Pack 2012 R2

    Descarregue o pacote de instalação do HPC Pack a partir do Microsoft Download Center. Para obter requisitos e instruções para preparar uma implantação de explosão Azure, consulte Burst to Azure Worker Instances with Microsoft HPC Pack.

  2. Configurar um certificado de gestão na assinatura Azure

    Configure um certificado para assegurar a ligação entre o nó de cabeça e a Azure. Para opções e procedimentos, consulte Cenários para Configurar o Certificado de Gestão Azure para o Pacote HPC. Para implementações de teste, o HPC Pack instala um Certificado de Gestão Azure Microsoft HPC padrão que pode fazer o upload rápido para a sua subscrição Azure.

  3. Criar um novo serviço de nuvem e uma conta de armazenamento

    Utilize o portal do Azure para criar um serviço de nuvem (clássico) e uma conta de armazenamento (clássico) para a implementação. Crie estes recursos numa região onde está disponível o tamanho H, A8 ou A9 que pretende utilizar. Consulte os produtos Azure por região.

  4. Crie um modelo de nó azul

    Utilize o assistente de modelo de nó criar no hpc cluster manager. Para etapas, consulte Criar um modelo de nó azul em "Steps to Deploy Azure Nodes with Microsoft HPC Pack".

    Para os testes iniciais, sugerimos configurar uma política de disponibilidade manual no modelo.

  5. Adicione os nó no cluster

    Utilize o Assistente de Nó adicionar no Cluster Manager do HPC. Para obter mais informações, consulte Add Azure Nodes ao Windows HPC Cluster.

    Ao especificar o tamanho dos nós, selecione um dos tamanhos de instância capazes de RDMA.

    Nota

    Em cada explosão para a implantação de Azure com os casos intensivos de computação, o HPC Pack implementa automaticamente um mínimo de duas instâncias com capacidade de RDMA (como A8) como nós de procuração, além das instâncias de função de trabalhador Azure que especifica. Os nós de procuração usam núcleos que são atribuídos à subscrição e incorrem em encargos, juntamente com as instâncias de função dos trabalhadores da Azure.

  6. Inicie (provisão) os nós e traga-os on-line para executar empregos

    Selecione os nós e utilize a ação Iniciar no Cluster Manager HPC. Quando o provisionamento estiver completo, selecione os nós e utilize a ação Bring Online no HPC Cluster Manager. Os nós estão prontos para gerir empregos.

  7. Submeta empregos ao cluster

    Utilize ferramentas de submissão de emprego do HPC Pack para executar trabalhos de cluster. Consulte o Microsoft HPC Pack: Gestão de Emprego.

  8. Parar (desprovisionamento) os nós

    Quando terminar os trabalhos de funcionamento, desligue os nós e use a ação Stop no HPC Cluster Manager.

Cenário 2: Implantar nós computacional em VMs computacional intensivos (IaaS)

Neste cenário, você implanta o nó de cabeça do HPC Pack e os nós de computação de cluster em VMs numa rede virtual Azure. O HPC Pack oferece várias opções de implementação em VMs Azure, incluindo scripts de implementação automatizado e modelos de arranque rápido Azure. Como exemplo, as seguintes considerações e passos guiam-no a utilizar o script de implementação do HPC Pack IaaS para automatizar a implantação de um cluster HPC Pack 2012 R2 em Azure.

Cluster em VMs Azure

Passos

  1. Crie um nó de cabeça de cluster e computação vMs de nó executando o script de implementação do HPC Pack IaaS num computador cliente

    Descarregue o pacote de scripts de implementação do Pacote HPC IaaS do Microsoft Download Center.

    Para preparar o computador cliente, crie o ficheiro de configuração do script e execute o script, consulte Criar um Cluster HPC com o script de implementação do Pacote IaaS do HPC.

    Para obter considerações para implantar nos nóns computacional capazes de RDMA, consulte os tamanhos VM de cálculo de alto desempenho e note o seguinte:

    • Rede virtual: Especifique uma nova rede virtual numa região em que o tamanho H, A8 ou A9 que pretende utilizar está disponível. Consulte os produtos Azure por região.

    • Sistema operativo Windows Server: Para suportar a conectividade RDMA, especifique um sistema operativo compatível com o Windows Server, como Windows Server 2012 R2 para os VMs do nó de computação.

    • Serviços na nuvem: Como o script utiliza o modelo clássico de implementação, os VMs do cluster são implantados utilizando serviços de nuvem Azure (ServiceName configurações no ficheiro de configuração). Recomendamos que coloque o nó de cabeça num serviço de nuvem e os seus nós de computação num serviço de nuvem diferente.

    • Tamanho do nó da cabeça: Para este cenário, considere um tamanho de pelo menos A4 (Extra Large) para o nó da cabeça.

    • Extensão HpcVmDrivers: O script de implementação instala automaticamente o Agente VM Azure e a extensão HpcVmDrivers quando implementa os nós computacionais de tamanho A8 ou A9 com um sistema operativo Windows Server. A HpcVmDrivers instala controladores nos VMs de nó de computação para que possam ligar-se à rede RDMA. Nos VMs da série H com capacidade RDMA, deve instalar manualmente a extensão HpcVmDrivers. Consulte os tamanhos de VM de cálculo de alto desempenho.

    • Configuração da rede de cluster: O script de implementação configura automaticamente o cluster HPC Pack em Topology 5 (todos os nós na rede Enterprise). Esta topologia é necessária para todas as implementações de clusters HPC Pack em VMs. Não altere a topologia da rede de cluster mais tarde.

  2. Traga os nó de computação on-line para gerir empregos

    Selecione os nós e use a ação Bring Online no HPC Cluster Manager. Os nós estão prontos para gerir empregos.

  3. Submeta empregos ao cluster

    Ligue-se ao nó de cabeça para apresentar trabalhos, ou crie um computador no local para o fazer. Para obter informações, consulte Submeter empregos a um cluster HPC em Azure.

  4. Leve os nós offline e pare (deallocate)

    Quando terminar os trabalhos de execução, desative os nós no HPC Cluster Manager. Em seguida, use ferramentas de gestão Azure para desligá-las.

Executar aplicações MPI no cluster

Exemplo: Executar mpipingpong em um cluster HPC Pack

Para verificar uma colocação do Pacote HPC das instâncias com capacidade RDMA, executar o comando mpipingpong do Grupo HPC no cluster. mpipingpong envia pacotes de dados entre nós emparelhados repetidamente para calcular medições de latência e produção e estatísticas para a rede de aplicações habilitada a RDMA. Este exemplo mostra um padrão típico para executar um trabalho de MPI (neste caso, mpipingpong) usando o comando mpiexec cluster.

Este exemplo pressupõe que adicionou nós Azure numa configuração "burst to Azure" ([Cenário 1](#scenario-1.-deploy-compute-intensivo-trabalhador-instâncias-instâncias-(PaaS) neste artigo). Se implementou o HPC Pack num conjunto de VMs Azure, terá de modificar a sintaxe de comando para especificar um grupo de nó diferente e definir variáveis ambientais adicionais para direcionar o tráfego de rede para a rede RDMA.

Para executar mpipingpong no cluster:

  1. No nó de cabeça ou num computador cliente devidamente configurado, abra uma origem de comando.

  2. Para estimar a latência entre pares de nós numa explosão de Azure de quatro nós, digite o seguinte comando para submeter um trabalho para executar mpipingpong com um pequeno tamanho de pacote e muitas iterações:

    job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 1:100000 -op -s nul
    

    O comando devolve a identificação do trabalho que é submetido.

    Se implementou o cluster do Pacote HPC implantado nos VMs Azure, especifique um grupo de nó que contenha VMs de nó computacional implantados num único serviço de nuvem e modifique o comando mpiexec da seguinte forma:

    job submit /nodegroup:vmcomputenodes /numnodes:4 mpiexec -c 1 -affinity -env MSMPI_DISABLE_SOCK 1 -env MSMPI_PRECONNECT all -env MPICH_NETMASK 172.16.0.0/255.255.0.0 mpipingpong -p 1:100000 -op -s nul
    
  3. Quando o trabalho estiver concluído, para visualizar a saída (neste caso, a saída da tarefa 1 do trabalho), digite o seguinte

    task view <JobID>.1
    

    onde <JobID> é o ID do trabalho que foi submetido.

    A produção inclui resultados de latência semelhantes aos seguintes.

    Latência do pingue-pongue

  4. Para estimar a produção entre pares de nós de rutura Azure, digite o seguinte comando para submeter um trabalho para executar mpipingpong com um grande tamanho de pacote e algumas iterações:

    job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 4000000:1000 -op -s nul
    

    O comando devolve a identificação do trabalho que é submetido.

    Num cluster HPC Pack implantado em VMs Azure, modifique o comando como indicado no passo 2.

  5. Quando o trabalho estiver concluído, para visualizar a saída (neste caso, a saída da tarefa 1 do trabalho), digite o seguinte:

    task view <JobID>.1
    

    A saída inclui resultados de produção semelhantes aos seguintes.

    Produção de ping-pong

Considerações de pedido de MPI

Seguem-se considerações para executar aplicações mpi com O Pacote HPC em Azure. Alguns aplicam-se apenas a implantações de nóns de Azure (instâncias de função do trabalhador adicionadas numa configuração "burst to Azure").

  • As instâncias de função dos trabalhadores num serviço de nuvem são periodicamente reprovisionadas sem aviso prévio por Azure (por exemplo, para manutenção do sistema, ou no caso de um caso falhar). Se um caso for reprovisionado enquanto está a executar um trabalho de MPI, o caso perde os seus dados e regressa ao Estado quando foi implementado pela primeira vez, o que pode fazer com que o trabalho de MPI falhe. Quanto mais nós usas para um único trabalho de MPI, e quanto mais tempo o trabalho funciona, mais provável é que uma das instâncias seja reprovisionada enquanto um trabalho está em execução. Considere isto se designar um único nó na implementação como um servidor de ficheiros.

  • Para gerir empregos de MPI em Azure, não é preciso usar os casos com capacidade de RDMA. Pode utilizar qualquer tamanho de instância suportado pelo HPC Pack. No entanto, recomenda-se que os casos com capacidade de RDMA sejam para a execução de trabalhos de MPI relativamente amplos que sejam sensíveis à latência e à largura de banda da rede que liga os nós. Se utilizar outros tamanhos para executar trabalhos de MPI sensíveis à latência e largura de banda, recomendamos a realização de pequenos empregos, nos quais uma única tarefa funciona apenas com alguns nós.

  • As candidaturas implementadas para instâncias Azure estão sujeitas aos termos de licenciamento associados ao pedido. Entre em contacto com o fornecedor de qualquer aplicação comercial para saber quais são as restrições de licenciamento (ou outras restrições) de execução na cloud. Nem todos os fornecedores oferecem licenciamento pay as you go.

  • As instâncias Azure precisam de uma configuração adicional para aceder a nós, ações e servidores de licenças no local. Por exemplo, para permitir que os nós Azure acedam a um servidor de licença no local, pode configurar uma rede virtual Azure site-to-site.

  • Para executar aplicações MPI em instâncias Azure, registe cada aplicação MPI com o Windows Firewall nas instâncias executando o comando hpcfwutil . Isto permite que as comunicações MPI ocorram numa porta que é atribuída dinamicamente pela firewall.

    Nota

    Para a explosão para as implementações do Azure, também pode configurar um comando de exceção de firewall para funcionar automaticamente em todos os novos nós Azure que são adicionados ao seu cluster. Depois de executar o comando hpcfwutil e verificar se a sua aplicação funciona, adicione o comando a um script de arranque para os seus nós Azure. Para obter mais informações, consulte Use um Script de Arranque para Nó azul.

  • O HPC Pack utiliza a variável ambiente de cluster CCP_MPI_NETMASK para especificar uma gama de endereços aceitáveis para a comunicação mpi. A partir do HPC Pack 2012 R2, a variável de ambiente de cluster CCP_MPI_NETMASK apenas afeta a comunicação MPI entre os nós de computação de clusters unidos pelo domínio (quer no local, quer em VMs Azure). A variável é ignorada por nós adicionados numa explosão à configuração de Azure.

  • Os trabalhos de MPI não podem correr em instâncias Azure que são implantadas em diferentes serviços em nuvem (por exemplo, em desdobramentos de Azure com diferentes modelos de nó, ou nódos de computação Azure VM implantados em múltiplos serviços de nuvem). Se tiver várias implementações de nó azul que são iniciadas com diferentes modelos de nó, o trabalho de MPI deve funcionar em apenas um conjunto de nós Azure.

  • Quando adiciona nós Azure ao seu cluster e os trar on-line, o Serviço de Agendadores de Emprego da HPC tenta imediatamente iniciar postos de trabalho nos nós. Se apenas uma parte da sua carga de trabalho puder ser executada no Azure, certifique-se de que atualiza ou cria modelos de emprego para definir que tipos de trabalho podem executar no Azure. Por exemplo, para garantir que os empregos submetidos com um modelo de trabalho só funcionam nos nós Azure, adicione a propriedade do Grupo de Nó ao modelo de trabalho e selecione AzureNodes como o valor exigido. Para criar grupos personalizados para os seus nós Azure, utilize o Add-HpcGroup cmdlet HPC PowerShell.

Passos seguintes