Computação de alto desempenho (HPC) no Azure

Introdução ao HPC

A computação de alto desempenho (HPC), também chamada de "big compute", usa um grande número de computadores baseados em CPU ou GPU para resolver tarefas matemáticas complexas.

Vários setores utilizam o HPC para resolver alguns dos problemas mais difíceis que enfrentam. Estes incluem cargas de trabalho como:

  • Genómica
  • Simulações do setor petrolífero
  • Finance
  • Design de semicondutores
  • Engenharia
  • Modelos de previsão meteorológica

De que forma é o HPC diferente na cloud?

Uma das principais diferenças entre um sistema HPC local e um na nuvem é a capacidade de os recursos serem dinamicamente adicionados e removidos conforme necessário. O dimensionamento dinâmico remove a capacidade de computação como estrangulamento e permite que os clientes dimensionem a infraestrutura para corresponder aos requisitos das tarefas.

Os artigos seguintes fornecem mais detalhes sobre esta capacidade de dimensionamento dinâmico.

Lista de verificação de implementação

Quando quiser implementar a sua própria solução de HPC no Azure, certifique-se de que revê os seguintes tópicos:

  • Escolha a arquitetura adequada com base nos seus requisitos
  • Saiba quais são as opções de computação certas para a sua carga de trabalho
  • Identifique a solução de armazenamento certa que satisfaz as suas necessidades
  • Decida como quer gerir todos os seus recursos
  • Otimize a sua aplicação para a cloud
  • Proteja a sua infraestrutura

Infraestrutura

Existem muitos componentes da infraestrutura que são necessários para construir um sistema de HPC. A computação, o armazenamento e a rede fornecem os componentes subjacentes, independentemente da forma como você escolhe gerenciar suas cargas de trabalho de HPC.

Exemplo de arquiteturas de HPC

Há muitas maneiras diferentes de projetar e implementar sua arquitetura HPC no Azure. As aplicações de HPC podem dimensionar para milhares de núcleos de computação, expandir os clusters no local ou executar como solução 100% nativa na cloud.

Os seguintes cenários descrevem algumas das formas comuns de criar soluções de HPC.

  • O diagrama mostra um exemplo de arquitetura HPC para serviços de engenharia assistidos por computador no Azure.

    Serviços de engenharia assistidos por computador no Azure

    Forneça uma plataforma de software como um serviço (SaaS) para engenharia assistida por computador (CAE) no Azure.

  • O diagrama mostra um exemplo de arquitetura HPC para renderização de vídeo 3D no Azure.

    Composição de vídeo 3D no Azure

    Execute cargas de trabalho de HPC nativas no Azure com o serviço Azure Batch

Computação

O Azure oferece uma variedade de tamanhos otimizados para cargas de trabalho com utilização intensiva de CPU e GPU.

Máquinas virtuais baseadas em CPU

Máquinas virtuais com utilização de GPU

As VMs de série N utilizam GPUs NVIDIA concebidas para aplicações com utilização intensiva de computação ou gráficos, incluindo aprendizagem por inteligência artificial (IA) e visualização.

Armazenamento

As cargas de trabalho de grande escala do Batch e de HPC têm requisitos de acesso e armazenamento de dados que excedem as capacidades dos sistemas de ficheiros de cloud tradicionais. Há muitas soluções que gerenciam as necessidades de velocidade e capacidade dos aplicativos HPC no Azure:

Para obter mais informações comparando o Lustre, o GlusterFS e o BeeGFS no Azure, consulte o e-book Sistemas de Arquivos Paralelos no Azure e o blog do Lustre no Azure .

Rede

As VMs H16r, H16mr, A8 e A9 podem ligar-se a uma rede RDMA de back-end de débito elevado. Essa rede pode melhorar o desempenho de aplicativos paralelos fortemente acoplados executados na Microsoft Message Passing Interface, mais conhecida como MPI ou Intel MPI.

Gestão

Faça você mesmo

A criação de um sistema HPC a partir do zero no Azure oferece uma quantidade significativa de flexibilidade, mas muitas vezes é muito intensiva em termos de manutenção.

  1. Configure seu próprio ambiente de cluster em máquinas virtuais do Azure ou Conjuntos de Dimensionamento de Máquina Virtual.
  2. Utilize modelos do Azure Resource Manager para implementar os principais gestores de cargas de trabalho, infraestrutura e aplicações.
  3. Escolha os tamanhos de VM HPC e GPU que incluem hardware especializado e ligações de rede para cargas de trabalho MPI ou GPU.
  4. Adicione armazenamento de alto desempenho para cargas de trabalho intensivas de E/S.

Rajada híbrida e de cloud

Se você tiver um sistema HPC local existente que gostaria de conectar ao Azure, há vários recursos para ajudá-lo a começar.

Em primeiro lugar, veja o artigo Options for connecting an on-premises network to Azure (Opções para ligar uma rede no local ao Azure) na documentação. A partir daí, você pode encontrar informações adicionais sobre essas opções de conectividade:

Quando a conectividade de rede tiver sido estabelecida com segurança, pode começar a utilizar recursos de computação na cloud a pedido com as capacidades de rajada do seu gestor de cargas de trabalho existente.

Soluções do Marketplace

Há muitos gerenciadores de carga de trabalho oferecidos no Azure Marketplace.

Azure Batch

O Azure Batch é um serviço de plataforma para executar aplicações paralelas e HPC de grande escala de forma eficiente na nuvem. O Azure Batch agenda trabalho de computação intensiva para ser executado num conjunto gerido de máquinas virtuais e pode dimensionar automaticamente recursos de computação para satisfazer as necessidades das suas tarefas.

Os fornecedores ou programadores de SaaS podem utilizar os SDKs e as ferramentas do Batch para integrar aplicações de HPC ou cargas de trabalho de contentor no Azure, preparar dados para o Azure e criar pipelines de execução de tarefas.

No Azure Batch, todos os serviços estão sendo executados na nuvem, a imagem abaixo mostra como a arquitetura se parece com o Azure Batch, tendo as configurações de escalabilidade e agendamento de trabalho em execução na nuvem enquanto os resultados e relatórios podem ser enviados para seu ambiente local.

O diagrama mostra um exemplo de arquitetura HPC para o Azure Batch.

Azure CycleCloud

O Azure CycleCloud é a forma mais simples de gerir cargas de trabalho de HPC com qualquer agendador (como o Slurm, Grid Engine, HPC Pack, HTCondor, LSF, PBS Pro ou Symphony) no Azure

O CycleCloud permite-lhe:

  • Implementar clusters completos e outros recursos, incluindo o agendador, VMs de computação, armazenamento, rede e cache
  • Orquestrar fluxos de trabalho de tarefas, dados e cloud
  • Dar aos administradores controlo total sobre que utilizadores podem executar tarefas, bem como onde e por que custo podem fazê-lo
  • Personalizar e otimizar clusters através de funcionalidades avançadas de política e governação, incluindo controlos de custos, integração do Active Directory, monitorização e relatórios
  • Utilizar o seu agendador de tarefas e aplicações atuais sem modificações
  • Tirar partido do dimensionamento automático incorporado e de arquiteturas de referência testadas exaustivamente para um vasto leque de cargas de trabalho de HPC e indústrias
Modelo híbrido/cloud bursting

Neste diagrama de exemplo híbrido, podemos ver claramente como esses serviços são distribuídos entre a nuvem e o ambiente local. Ter a oportunidade de executar trabalhos em ambas as cargas de trabalho. O diagrama mostra um exemplo de arquitetura HPC para o CycleCloud no Azure em um híbrido.

Modelo nativo da nuvem

O diagrama de exemplo de modelo nativo da nuvem abaixo mostra como a carga de trabalho na nuvem lidará com tudo enquanto ainda conserva a conexão com o ambiente local.

O diagrama mostra um exemplo de arquitetura HPC para o CycleCloud no Azure no modelo nativo da nuvem.

Gráfico comparativo

Caraterística Azure Batch Azure CycleCloud
Agendador APIs e ferramentas em lote e scripts de linha de comando no portal do Azure (Cloud Native). Use agendadores HPC padrão, como Slurm, PBS Pro, LSF, Grid Engine e HTCondor, ou estenda os plug-ins de dimensionamento automático do CycleCloud para trabalhar com seu próprio agendador.
Recursos de computação Software as a Service Nodes – Plataforma como Serviço Software de plataforma como serviço – Plataforma como serviço
Ferramentas de monitorização Azure Monitor Azure Monitor, Grafana
Personalização Pools de imagens personalizadas, imagens de terceiros, acesso à API em lote. Use a abrangente API RESTful para personalizar e estender a funcionalidade, implantar seu próprio agendador e oferecer suporte aos gerenciadores de carga de trabalho existentes
Integração Synapse Pipelines, Azure Data Factory, Azure CLI CLI integrada para Windows e Linux
Tipo de utilizador Programadores Administradores e utilizadores de HPC clássica
Tipo de Trabalho Lote, Fluxos de trabalho Firmemente acoplado (Message Passing Interface/MPI).
Suporte do Windows Sim Varia, dependendo da escolha do agendador

Gestores de cargas de trabalho

Seguem-se exemplos de gestores de cargas de trabalho e clusters que podem ser executados na infraestrutura do Azure. Crie clusters autónomos em VMs do Azure ou expanda para VMs do Azure a partir de um cluster no local.

Contentores

Também pode utilizar contentores para gerir algumas cargas de trabalho de HPC. Serviços como o Azure Kubernetes Service (AKS) facilitam a implementação de um cluster do Kubernetes gerido no Azure.

Gestão de custos

Tem à sua disposição várias formas de gerir os custos associados ao HPC no Azure. Certifique-se de que reviu as opções de compra do Azure para encontrar o método mais adequado para a sua organização.

Segurança

Para obter uma descrição geral das melhores práticas de segurança no Azure, reveja a Documentação de Segurança do Azure.

Além das configurações de rede disponíveis na seção Cloud Bursting , você pode implementar uma configuração hub/spoke para isolar seus recursos de computação:

Aplicações de HPC

Execute aplicações de HPC comerciais ou personalizadas no Azure. Vários exemplos nesta secção foram submetidos a testes de referência para dimensionar de forma eficiente com VMs ou núcleos de computação adicionais. Visite o Azure Marketplace para obter soluções prontas a implementar.

Nota

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. Poderá precisar de um servidor de licenciamento na cloud para a sua solução ou ligar-se a um servidor de licenças no local.

Aplicações de engenharia

Gráficos e composição

IA e aprendizagem profunda

Fornecedores de MPI

Visualização remota

Execute máquinas virtuais alimentadas por GPU no Azure na mesma região da saída HPC para obter a menor latência, acesso e visualização remota através do Ambiente de Trabalho Virtual do Azure.

Referências do Desempenho

Histórias de clientes

Há muitos clientes que tiveram grande sucesso usando o Azure para suas cargas de trabalho de HPC. Abaixo, pode ver alguns dos casos práticos destes clientes:

Outras informações importantes

  • Certifique-se de que a sua quota de vCPU foi aumentada antes de tentar executar cargas de trabalho em grande escala.

Próximos passos

Para obter os anúncios mais recentes, consulte os seguintes recursos:

Exemplos do Microsoft Batch

Estes tutoriais fornecerão detalhes sobre a execução de aplicativos no Microsoft Batch: