Configurar um cluster de RDMA do Windows com o HPC Pack para executar aplicativos MPI
Importante
As VMs clássicas serão desativadas em 1º de março de 2023.
Se você usa os recursos de IaaS do ASM, realize a migração até 1º de março de 2023. Recomendamos que faça a migração o quanto antes para aproveitar as inúmeras melhorias feitas no Azure Resource Manager.
Para mais informações, confira Migrar os recursos de IaaS para o Azure Resource Manager até 1º de março de 2023.
Configurar um cluster de RDMA do Windows no Azure com o pacote Microsoft HPC e tamanhos de VM do HPC compatíveis com RDMA para executar aplicativos paralelos de Interface de Transmissão de Mensagens (MPI). Quando você configura nós compatíveis com RDMA baseados no Windows Server em um cluster de Pacote HPC, os aplicativos MPI se comunicam de modo eficiente por uma rede de baixa latência e alta taxa de transferência baseada na tecnologia RDMA (acesso remoto direto à memória).
Opções de implantação do cluster do Pacote HPC
O Microsoft HPC Pack é uma ferramenta fornecida sem custo adicional para criar clusters HPC locais ou no Azure para executar aplicativos HPC do Windows ou Linux. O HPC Pack inclui um ambiente de runtime para a implementação por parte da Microsoft da MS-MPI (Interface de Transmissão de Mensagem para Windows). Quando usado com instâncias compatíveis com RDMA executando um sistema operacional do Windows Server com suporte, o HPC Pack oferece uma opção eficiente para executar aplicativos MPI do Windows que acessam a rede RDMA do Azure.
Este artigo apresenta dois cenários e links para diretrizes detalhadas de como configurar um cluster do Windows RDMA com o Microsoft HPC Pack 2012 R2.
- Cenário 1. Implantar instâncias de função de trabalho de computação intensiva (PaaS)
- Cenário 2: Implantar nós de computação em VMs de computação intensiva (IaaS)
Cenário 1: Implantar instâncias de função de trabalho de computação intensiva (PaaS)
Em um cluster existente do HPC Pack, adicione recursos de computação extras nas instâncias de função de trabalho do Azure (nós do Azure) em execução em um serviço de nuvem (PaaS). Esse recurso, também chamado de "disparo no Azure" do HPC Pack, dá suporte a uma variedade de tamanhos para as instâncias de função de trabalho. Ao adicionar os nós do Azure, especifique um dos tamanhos compatíveis com RDMA.
Veja a seguir as considerações e etapas para disparar as instâncias compatíveis com RDMA do Azure de um cluster existente (geralmente locais). Use procedimentos semelhantes para adicionar instâncias de função de trabalho a um nó de cabeçalho do HPC Pack que é implantado em uma VM do Azure.
Observação
Para ver um tutorial de como disparar no Azure com o HPC Pack, consulte Configurar um cluster híbrido com o HPC Pack. Observe que as considerações nas etapas que se seguem se aplicam especificamente aos nós do Azure compatíveis com RDMA.
Etapas
Implantar e configurar um nó de cabeçalho do HPC Pack 2012 R2
Baixe o pacote de instalação do HPC Pack no Centro de Download da Microsoft. Para ver requisitos e instruções de como se preparar para uma implantação de disparo do Azure, confira Burst to Azure Worker Instances with Microsoft HPC Pack (Aumente a capacidade das instâncias de trabalho do Azure com o Microsoft HPC Pack).
Configurar um certificado de gerenciamento na assinatura do Azure
Configure um certificado para proteger a conexão entre o nó de cabeçalho e o Azure. Para ver opções e procedimentos, consulte Cenários para configurar o certificado de gerenciamento do Azure para HPC Pack. Para implantações de teste, o Pacote HPC instala um Certificado Padrão de Gerenciamento do Microsoft HPC Azure que pode ser carregado rapidamente na sua assinatura do Azure.
Criar um novo serviço de nuvem e uma conta de armazenamento
Use o portal do Azure para criar um serviço de nuvem (clássico) e uma conta de armazenamento (clássico) para a implantação. Crie esses recursos em uma região em que a série H ou o tamanho A8 ou A9 que você deseja usar está disponível. Consulte Produtos do Azure por região.
Criar um modelo de nó do Azure
Use o Assistente para Criar Modelo de Nó no Gerenciador de Cluster do HPC. Para ver as etapas, consulte Criar um modelo de nó do Azure em "Etapas para implantar nós do Azure com o Microsoft HPC Pack".
Para fazer testes iniciais, recomendamos configurar uma política de disponibilidade manual no modelo.
Adicionar nós ao cluster
Use o Assistente para Adicionar Nós no Gerenciador de Cluster do HPC. Para saber mais, consulte Adicionar nós do Azure ao cluster do Windows HPC.
Ao especificar o tamanho dos nós, selecione um dos tamanhos de instância compatíveis com RDMA.
Observação
Em cada disparo na implantação do Azure com as instâncias de computação intensiva, o HPC Pack implanta automaticamente um mínimo de duas instâncias compatíveis com RDMA (por exemplo, A8) como nós de proxy, além das instâncias de função de trabalho do Azure que você especifica. Os nós de proxy usam núcleos que são alocados para a assinatura e incorrem em cobranças juntamente com as instâncias de função de trabalho do Azure.
Iniciar (provisionar) os nós e ativá-los para executar trabalhos
Selecione os nós e use a ação Start no Gerenciador de Cluster do HPC. Quando o provisionamento estiver concluído, selecione os nós e use a ação Bring Online no Gerenciador de Cluster do HPC. Os nós estão prontos para executar trabalhos.
Enviar trabalhos para o cluster
Use ferramentas de envio de trabalho do HPC Pack para executar trabalhos de cluster. Consulte Microsoft HPC Pack: gerenciamento de trabalhos.
Parar (desprovisionar) os nós
Quando você terminar de executar trabalhos, coloque os nós offline e use a ação Stop no Gerenciador de Cluster do HPC.
Cenário 2: Implantar nós de computação em VMs de computação intensiva (IaaS)
Neste cenário, você implanta o nó de cabeçalho do HPC Pack e os nós de computação de cluster em VMs em uma rede virtual do Azure. O HPC Pack fornece várias opções de implantação em VMs do Azure, incluindo scripts de implantação automatizada e modelos de início rápido do Azure. Como exemplo, as considerações e etapas a seguir mostrarão a você como usar o script de implantação IaaS do HPC Pack para automatizar a implantação de um cluster HPC Pack 2012 R2 no Azure.
Etapas
Criar um nó de cabeçalho de cluster e VM de nó de computação executando o script de implantação de IaaS do HPC Pack em um computador cliente
Baixe o pacote Script de Implantação de IaaS do HPC do Centro de Download da Microsoft.
Para preparar o computador cliente, criar o arquivo de configuração de script e executar o script, consulte Criar um cluster de HPC com o script de implantação de IaaS do HPC Pack.
Para obter considerações sobre como implantar nós de computação compatíveis com RDMA, consulte Tamanhos de VM de computação de alto desempenho e observe o seguinte:
Rede virtual: especifique uma nova rede virtual em uma região em que a série H ou o tamanho A8 ou A9 que você deseja usar está disponível. Consulte Produtos do Azure por região.
Sistema operacional Windows Server: para dar suporte à conectividade RDMA, especifique um sistema operacional Windows Server compatível, como o Windows Server 2012 R2 para as VMs do nó de computação.
Serviços de nuvem: como o script usa o modelo de implantação clássico, as VMs do cluster são implantadas por meio dos serviços de nuvem do Azure (configurações de
ServiceName
no arquivo de configuração). Recomendamos implantar o nó de cabeçalho em um serviço de nuvem e os nós de computação em outro serviço de nuvem.Tamanho do nó de cabeçalho: para esse cenário, considere, no mínimo, um tamanho A4 (extra grande) para o nó de cabeçalho.
Extensão HpcVmDrivers: o script de implantação instala o agente de VM do Azure e a extensão HpcVmDrivers automaticamente quando você implanta os nós de computação A8 ou A9 com um sistema operacional Windows Server. A extensão HpcVmDrivers instala drivers nas VMs do nó de computação para que elas possam se conectar à rede RDMA. Em VMs da série H compatíveis com RDMA, você deve instalar a extensão HpcVmDrivers manualmente. Consulte Tamanhos de VM de computação de alto desempenho.
Configuração de rede de cluster: o script de implantação configura automaticamente o cluster HPC Pack na Topologia 5 (todos os nós na rede corporativa). Essa topologia é necessária para todas as implantações de cluster de HPC Pack em VMs. Não altere a topologia de rede do cluster posteriormente.
Colocar os nós de computação online para executar trabalhos
Selecione os nós e use a ação Colocar Online no Gerenciador de Cluster do HPC. Os nós estão prontos para executar trabalhos.
Enviar trabalhos para o cluster
Conecte-se ao nó de cabeçalho para enviar trabalhos ou configure um computador local para fazer isso. Para saber mais, consulte Enviar trabalhos para um cluster do HPC no Azure.
Colocar os nós offline e pará-los/desalocá-los
Quando você terminar a execução de trabalhos, coloque os nós offline no Gerenciador de Cluster do HPC. Em seguida, use as ferramentas de gerenciamento do Azure para desativá-los.
Executar aplicativos MPI no cluster
Exemplo: executar mpipingpong em um cluster do HPC Pack
Para verificar uma implantação do HPC Pack das instâncias compatíveis com RDMA, execute o comando mpipingpong do HPC Pack no cluster. mpipingpong envia pacotes de dados entre nós emparelhados repetidamente para calcular medições de latência e taxa de transferência, bem como estatísticas para a rede de aplicativo compatível com RDMA. Este exemplo mostra um padrão típico para executar um trabalho MPI (nesse caso, mpipingpong) usando comando mpiexec do cluster.
Este exemplo pressupõe que você adicionou nós do Azure em uma configuração "burst to Azure" ([Cenário 1](#scenario-1.-deploy-compute-intensive-worker-role-instances-(PaaS) neste artigo). Se você implantou o HPC Pack em um cluster de VMs do Azure, será preciso modificar a sintaxe de comando a fim de especificar um grupo de nós diferente e definir variáveis de ambiente adicionais de modo a direcionar o tráfego de rede para a rede RDMA.
Para executar mpipingpong no cluster:
No nó de cabeçalho ou em um computador cliente configurado corretamente, abra um prompt de comando.
Para estimar a latência entre pares de nós em uma implantação de disparo do Azure de quatro nós, digite o seguinte comando a fim de enviar um trabalho para executar mpipingpong com um pacote pequeno e muitas iterações:
job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 1:100000 -op -s nul
O comando retorna a ID do trabalho enviado.
Se você tiver implantado o cluster do HPC Pack implantado em VMs do Azure, especifique um grupo de nós que contenha VMs do nó de computação implantadas em um único serviço de nuvem e modifique o comando mpiexec como se segue:
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
Quando o trabalho for concluído, para exibir a saída (nesse caso, a saída da tarefa 1 do trabalho), digite o seguinte
task view <JobID>.1
em < que JobID> é a ID do trabalho que foi enviado.
A saída inclui resultados de latência semelhantes aos que se seguem.
Para estimar a taxa de transferência entre pares dos nós de disparo do Azure, digite o seguinte comando a fim de enviar um trabalho para execução de mpipingpong com um pacote grande e algumas iterações:
job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 4000000:1000 -op -s nul
O comando retorna a ID do trabalho enviado.
Em um cluster do HPC Pack implantado em VMs do Azure, modifique o comando, como observado na etapa 2.
Quando o trabalho for concluído, para exibir a saída (nesse caso, a saída da tarefa 1 do trabalho), digite o seguinte:
task view <JobID>.1
A saída inclui resultados de taxa de transferência semelhantes aos que se seguem.
Considerações de aplicativos MPI
A seguir, as considerações para execução de aplicativos MPI com HPC Pack no Azure. Algumas se aplicam somente à implantações de nós do Azure (instâncias de função de trabalho adicionadas em uma configuração de "disparo no Azure").
As instâncias de função de trabalho em um serviço de nuvem são reprovisionadas periodicamente sem aviso pelo Azure (por exemplo, para manutenção do sistema ou no caso de uma instância falhar). Se uma instância for reprovisionada enquanto estiver executando um trabalho MPI, ela perderá os seus dados e retornará para o estado em que estava quando foi implantada pela primeira vez, o que poderá fazer com que o trabalho MPI falhe. Quanto mais nós forem usados para um único trabalho MPI e quanto mais longa for a execução do trabalho, maior a probabilidade de que uma das instâncias seja reprovisionada enquanto um trabalho estiver em execução. Leve isso também em consideração se designar um único nó na implantação como um servidor de arquivos.
Não é preciso usar as instâncias compatíveis com RDMA para executar trabalhos MPI no Azure. Você pode usar qualquer tamanho de instância que tenha o suporte do HPC Pack. No entanto, as instâncias compatíveis com RDMA são recomendadas para executar trabalhos MPI de escala relativamente grande que sejam sensíveis à latência e à largura de banda da rede que conecta os nós. Se você usa instâncias de outros tamanhos para executar trabalhos MPI sensíveis à latência e à largura de banda, é recomendável executar trabalhos pequenos, nos quais uma única tarefa é executada em apenas alguns nós.
Os aplicativos implantados em instâncias do Azure estão sujeitos aos termos de licenciamento associados ao aplicativo. Verifique com o fornecedor de qualquer aplicativo comercial quanto ao licenciamento ou outras restrições de execução na nuvem. Nem todos os fornecedores oferecem licenciamento pré-pago.
As instâncias do Azure precisam de outras configurações para acessar os nós, os compartilhamentos e os servidores de licenças locais. Por exemplo, para permitir que os nós do Azure acessem um servidor de licenças local, você pode configurar uma rede virtual site a site do Azure.
Para executar aplicativos MPI em instâncias do Azure, registre cada aplicativo MPI no Firewall do Windows nas instâncias executando o comando hpcfwutil . Isso permite que as comunicações MPI ocorram em uma porta atribuída dinamicamente pelo firewall.
Observação
Para implantações de disparo no Azure, você também pode configurar um comando de exceção de firewall para ser executado automaticamente em todos os nós novos do Azure que são adicionados ao cluster. Depois de executar o comando hpcfwutil e verificar se seu aplicativo funciona, adicione o comando ao script de inicialização dos seus nós do Azure. Para obter mais informações, consulte Usar um script de inicialização para nós do Azure.
O HPC Pack usa a variável de ambiente do cluster CCP_MPI_NETMASK para especificar um intervalo de endereços aceitáveis para comunicação MPI. A partir do HPC Pack 2012 R2, a variável de ambiente do cluster CCP_MPI_NETMASK afeta apenas a comunicação MPI entre nós de computação de cluster que ingressaram no domínio (no local ou em VMs do Azure). A variável é ignorada pelos nós adicionados em uma configuração de disparo no Azure.
Os trabalhos MPI não podem ser executados nas instâncias do Azure que estiverem implantadas em serviços de nuvem diferentes (por exemplo, em implantações de disparo no Azure com diferentes modelos de nó ou em nós de computação da VM do Azure implantados em vários serviços de nuvem). Se você tiver várias implantações de nó do Azure que são iniciadas com modelos de nó diferentes, o trabalho MPI deverá ser executado apenas em um conjunto de nós do Azure.
Quando você adicionar nós do Azure ao cluster e colocá-los online, o Serviço do Agendador de Trabalho do HPC tentará imediatamente iniciar trabalhos nos nós. Se apenas uma parte da carga de trabalho puder ser executada no Azure, não se esqueça de atualizar ou criar modelos de trabalho para definir quais tipos de trabalho podem ser executados no Azure. Por exemplo, para garantir que trabalhos enviados com um modelo de trabalho sejam executados somente em nós do Azure, adicione a propriedade Grupos de Nós ao modelo de trabalho e selecione AzureNodes como o valor necessário. Para criar grupos personalizados para seus nós do Azure, use o cmdlet Add-HpcGroup HPC PowerShell.
Próximas etapas
- Como alternativa ao uso do HPC Pack, desenvolva com o serviço de lote do Azure para executar aplicativos MPI em pools gerenciados de nós de computação no Azure. Veja Usar tarefas de várias instâncias para executar aplicativos de MPI (Interface de Transmissão de Mensagens) no Lote do Azure.