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

Introdução à HPC

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

Vários setores usam a HPC para solucionar alguns de seus problemas mais difíceis. Esses problemas incluem cargas de trabalho como:

  • Genomics
  • Simulações de petróleo e gás
  • Finance
  • Design de semicondutores
  • Engenharia
  • Modelagem climática

Qual a diferença entre a HPC e a nuvem?

Uma das principais diferenças entre o sistema de HPC local e um na nuvem é a capacidade de adicionar e remover recursos dinamicamente, conforme necessário. O escalonamento dinâmico remove o gargalo da capacidade de computação e permite que os clientes dimensionem corretamente a infraestrutura, de acordo com os requisitos de seus trabalhos.

Os artigos a seguir fornecem mais detalhes sobre essa funcionalidade de dimensionamento dinâmico.

Lista de verificação de implementação

Se for implementar sua própria solução de HPC no Azure, consulte os seguintes tópicos:

  • Escolher a arquitetura apropriada com base nos requisitos
  • Saber quais opções de computação são as ideais para sua carga de trabalho
  • Identificar a solução de armazenamento ideal que atenda às suas necessidades
  • Decidir como gerenciará todos os seus recursos
  • Otimizar seu aplicativo para a nuvem
  • Proteger sua infraestrutura

Infraestrutura

Há muitos componentes de infraestrutura necessários para criar um sistema HPC. Computação, armazenamento e rede são os componentes básicos, independentemente de como escolha gerenciar as cargas de trabalho da HPC.

Exemplo de arquiteturas de HPC

São várias as maneiras de projetar e implementar a arquitetura de HPC no Azure. Os aplicativos de HPC podem dimensionar até milhares de núcleos de computação, estender clusters locais ou executar solução nativa 100% em nuvem.

Os cenários a seguir descrevem algumas maneiras comuns de compilação das soluções de HPC.

  • O diagrama mostra exemplos de arquitetura HPC para serviços de engenharia auxiliados por computador no Azure.

    Serviços de engenharia auxiliados por computador no Azure

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

  • O diagrama mostra exemplos de arquitetura HPC para simulações de dinâmica de fluidos computacional no Azure.

    CFD (Simulações de fluidodinâmica computacional) no Azure

    Execute a dinâmica dos fluidos computacional (CFD) no Azure.

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

    Renderização de vídeo em 3D no Azure

    Executar cargas de trabalho de HPC nativas no Azure usando o serviço de Lote do Azure

Computação

O Azure oferece uma variedade de tamanhos otimizados para cargas de trabalho com uso intensivo de CPU e GPU.

Máquinas virtuais baseadas em CPU

Máquinas virtuais habilitadas para GPU

As VMs da série N têm GPUs NVIDIA projetados para uso de computação intensa ou gráficos intensivos, incluindo visualização e aprendizagem de IA (inteligência artificial).

Armazenamento

Cargas de trabalho do Lote e de HPC em larga escala têm exigências de armazenamento e acesso a dados que excedem os recursos de sistemas de arquivos em nuvem tradicionais. Existem algumas soluções para gerenciar as necessidades de velocidade e capacidade dos aplicativos de HPC no Azure.

Para obter mais informações sobre a comparação entre o Lustre, o GlusterFS e o BeeGFS no Azure, consulte o livro eletrônico sobre Sistemas de arquivos paralelos no Azure e o blog Lustre no Azure.

Rede

VMs H16r, H16mr, A8 e A9 podem se conectar a uma rede RDMA de back-end de alta taxa de transferência. Essa rede pode melhorar o desempenho de aplicativos paralelos firmemente acoplados em execução na Interface de Passagem de Mensagem da Microsoft mais conhecida como MPI ou Intel MPI.

Gerenciamento

Faça você mesmo

Compilar um sistema HPC do zero no Azure oferece uma quantidade significativa de flexibilidade mas, normalmente, exige muita manutenção.

  1. Configurar seu próprio ambiente de cluster em máquinas virtuais do Azure ou Conjuntos de Dimensionamento de Máquinas Virtuais.
  2. Use modelos do Azure Resource Manager para implantar gerenciadores de carga de trabalho, infraestrutura, e aplicativos iniciais.
  3. Escolha tamanhos de VM de GPU e HPC que incluem conexões de rede e hardware especializado para cargas de trabalho MPI ou GPU.
  4. Adicione armazenamento de alto desempenho para cargas de trabalho com E/S alta.

Intermitência híbrida e de nuvem

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

Primeiramente, leia o artigo Opções de conexão de uma rede 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 é estabelecida com segurança, você pode começar a usar os recursos de computação na nuvem sob demanda com as funcionalidades de intermitência do seu atual gerenciador de carga de trabalho.

Soluções do Marketplace

O Azure Marketplace oferece muitos gerenciadores de carga de trabalho.

Lote do Azure

O Lote do Azure é um serviço de plataforma para execução de aplicativos paralelos em grande escala e aplicativos HPC com eficiência na nuvem. O Lote do Azure agenda o trabalho de computação intensiva para execução em um pool gerenciado de máquinas virtuais e pode dimensionar automaticamente os recursos de computação para atender às necessidades de seus trabalhos.

Os provedores ou desenvolvedores SaaS podem usar os SDKs e as ferramentas do Lote para integrar aplicativos ou cargas de trabalho de contêiner de HPC ao Azure, transferir dados para o Azure e criar pipelines de execução do trabalho.

No Lote do Azure todos os serviços estão em execução na nuvem, a imagem abaixo mostra como a arquitetura fica com o Lote do Azure, 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 Lote do Azure.

Azure CycleCloud

Azure CycleCloud Fornece a maneira mais fácil de gerenciar cargas de trabalho de HPC usando qualquer agendador (como Slurm, Grid Engine, HPC Pack, HTCondor, LSF, PBS Pro ou Symphony), no Azure

CycleCloud permite que você:

  • Implante clusters completos e outros recursos, incluindo agendador, VMs de computação, armazenamento, rede e cache.
  • Organize fluxos de trabalho de dados, de nuvem e de tarefas.
  • Dê aos administradores controle total sobre quais usuários podem executar trabalhos, onde podem fazer isso e a que custo.
  • Personalize e otimize clusters por meio de recursos avançados de política e governança, incluindo controles de custo, integração ao Active Directory, monitoramento e relatórios.
  • Use seus aplicativos e o agendador de trabalhos atuais sem modificação.
  • Aproveite as arquiteturas de referência rigorosamente testadas e o dimensionamento automático interno para uma ampla variedade de setores e cargas de trabalho de HPC.
Modelo de intermitência híbrida/de nuvem

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

Modelo nativo de nuvem

O diagrama de exemplo do modelo nativo de 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 de comparação

Recurso Lote do Azure Azure CycleCloud
Agendador APIs do Lote e ferramentas e scripts de linha de comando no portal do Azure (Nativo de Nuvem). Use agendadores HPC padrão, como Slurm, PBS Pro, LSF, Grid Engine e HTCondor, ou estenda plug-ins de dimensionamento automático do CycleCloud para trabalhar com seu próprio agendador.
Recursos de Computação Nós de software como serviço - Plataforma como serviço Software de plataforma como serviço - Plataforma como serviço
Monitorar ferramentas Azure Monitor Azure Monitor, Grafana
Personalização Pools de imagens personalizados, imagens de terceiros, acesso à API do Lote. Use a API RESTful abrangente para personalizar e estender a funcionalidade, implantar seu próprio agendador e dar suporte a gerentes de carga de trabalho existentes
Integração Pipelines do Synapse, Azure Data Factory, CLI do Azure CLI interna para Windows e Linux
Tipo de usuário Desenvolvedores Administradores e usuários de HPC clássicos
Tipo de trabalho Lote, fluxos de trabalho Firmemente acoplado (Interface de Passagem de Mensagem/MPI).
Suporte do Windows Sim Varia, dependendo da opção do agendador

Gerenciadores de carga de trabalho

A seguir, os exemplos de gerenciadores de cluster e de carga de trabalho que podem ser executados na infraestrutura do Azure. Crie clusters autônomos em VMs do Azure ou se espalhe para máquinas virtuais do Azure de um cluster local.

Contêineres

Contêineres também podem ser usados para gerenciar algumas cargas de trabalho de HPC. Serviços como o AKS (Serviço de Kubernetes do Azure) simplificam a implantação de um cluster do Kubernetes gerenciado no Azure.

Gerenciamento de custos

O gerenciamento de custo da HPC no Azure pode ser feito de várias maneiras. Procure ler as Opções de compra do Azure para encontrar o método ideal para sua organização.

Segurança

Para obter uma visão geral das práticas recomendadas de segurança no Azure, leia a documentação de segurança do Azure.

Além das configurações de rede disponíveis na seção Intermitência da Nuvem, talvez seja conveniente implementar uma configuração de hub/spoke para isolar seus recursos de computação:

Aplicativos de HPC

Execute aplicativos de HPC comerciais ou personalizados no Azure. Vários exemplos desta seção são submetidos a benchmark para dimensionar com eficiência em caso de VMs ou núcleos de computação adicionais. Visite o Azure Marketplace para obter soluções prontas para uso.

Observação

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. Você talvez precise de um servidor de licenciamento na nuvem para sua solução, ou de uma conexão com um servidor de licença local.

Aplicativos de engenharia

Gráficos e renderização

IA e deep learning

Provedores de MPI

Visualização remota

Execute máquinas virtuais alimentadas por GPU no Azure na mesma região que a saída de HPC para a menor latência, acesso e visualização remotamente por meio da Área de Trabalho Virtual do Azure, do Citrix ou do VMware Horizon.

Parâmetros de comparação de desempenho

Histórias do cliente

Alguns clientes obtiveram muito sucesso usando o Azure nas próprias cargas de trabalho de HPC. Veja alguns desses clientes nos estudos de caso a seguir:

Outras informações importantes

  • Verifique se a sua cota de vCPU foi aumentada antes de tentar executar cargas de trabalho de grande escala.

Próximas etapas

Para obter os comunicados mais recentes, consulte os seguintes recursos:

Exemplos de Lote do Microsoft

Esses tutoriais fornecerão detalhes sobre como executar aplicativos no Lote da Microsoft: