Vista geral da criação de clusters de HPC


Para criar a infraestrutura para aplicações fortemente acopladas que são dimensionadas em vários nós, pode criar um cluster de instâncias de máquinas virtuais (VMs). Este guia oferece uma vista geral de nível superior das principais considerações e passos para configurar um cluster de instâncias de máquinas virtuais (VM) para cargas de trabalho de computação de alto desempenho (HPC) usando a alocação densa de recursos.

O Compute Engine oferece várias formas de criar uma infinidade de instâncias de VMs que estão ligadas à mesma rede, mas não requerem uma alocação densa de recursos. Por exemplo, pode usar qualquer um dos seguintes métodos, que são abordados noutras partes da documentação do Compute Engine:

Também pode criar um script que inclua os comandos para criar instâncias individuais e associar políticas de posicionamento compactas às instâncias para reduzir a latência.

Com o H4D (pré-visualização), o Compute Engine adiciona suporte para a execução de cargas de trabalho de HPC massivas, tratando um cluster inteiro de instâncias de VMs como um único computador. A utilização do posicionamento de VMs com reconhecimento da topologia permite-lhe aceder a muitas instâncias num único superbloco de rede e minimiza a latência da rede. Também pode configurar o RDMA na nuvem nestas instâncias para maximizar o desempenho da comunicação entre nós, o que é fundamental para cargas de trabalho de HPC fortemente acopladas.

Cria estes clusters de VMs de HPC com H4D reservando blocos de capacidade em vez de recursos individuais. A utilização de blocos de capacidade para o cluster oferece as seguintes funcionalidades adicionais para implementar e gerir estes ambientes de grande escala:

  • Posicionamento das instâncias de VM com reconhecimento da topologia
  • Sistemas de reserva avançados para proteger e gerir a capacidade
  • Grupos de instâncias geridas (GIGs) melhorados concebidos para conjuntos grandes e interdependentes de instâncias de VM.
  • Programação e controlos de manutenção avançados que oferecem mais controlo sobre quando e como a manutenção ocorre nas instâncias de VM, o que é fundamental para cargas de trabalho de longa duração e sensíveis a interrupções. Isto inclui funcionalidades como a manutenção acionada pelo cliente e a manutenção agrupada para blocos de recursos.

Terminologia de clusters

Quando trabalha com blocos de capacidade, são usados os seguintes termos:

Blocos
Vários sub-blocos interligam-se com uma estrutura não bloqueadora, oferecendo uma interligação de elevada largura de banda. Qualquer CPU no bloco é acessível num máximo de dois saltos de rede. O sistema expõe metadados de blocos e subblocos aos orquestradores para permitir o posicionamento ideal de tarefas.
Clusters
Vários blocos interligam-se para formar um cluster que é dimensionado para milhares de CPUs para executar cargas de trabalho de HPC em grande escala. Cada cluster é globalmente único. A comunicação entre diferentes blocos adiciona apenas um salto adicional, mantendo um elevado desempenho e previsibilidade, mesmo a uma escala massiva. Os metadados ao nível do cluster também estão disponíveis para os orquestradores para um posicionamento de tarefas inteligente e em grande escala.
Implementação densa
Um pedido de recursos que atribui os recursos da instância de computação fisicamente próximos uns dos outros para minimizar os saltos de rede e otimizar para a latência mais baixa.
Estrutura de rede
Uma estrutura de rede oferece conetividade de largura de banda elevada e baixa latência em todos os blocos e Google Cloud serviços num cluster. O Jupiter é a arquitetura de rede do centro de dados da Google que tira partido da rede definida por software e dos comutadores de circuitos óticos para desenvolver a rede e otimizar o respetivo desempenho.
Nó ou anfitrião
Uma única máquina de servidor físico no centro de dados. Cada anfitrião tem as suas CPUs, memória e interfaces de rede de recursos de computação associados. O número e a configuração destes recursos de computação dependem da família de máquinas. As instâncias de VM são aprovisionadas sobre um anfitrião físico.
Orchestrator
Um orquestrador automatiza a gestão dos seus clusters. Com um orquestrador, não tem de gerir cada instância de VM no cluster. Um orquestrador, como o Slurm ou o Google Kubernetes Engine (GKE), processa tarefas como a colocação em fila de trabalhos, a atribuição de recursos, a escala automática (com o GKE) e outras tarefas de gestão de clusters diárias.
Sub-blocos
Estas são unidades fundamentais onde um grupo de anfitriões está fisicamente localizado num único rack. Um comutador Top-of-Rack (ToR) liga estes anfitriões, o que permite uma comunicação de salto único extremamente eficiente entre quaisquer duas CPUs no sub-bloco. O RDMA na nuvem facilita esta comunicação direta.

Vista geral do processo de criação de clusters com VMs H4D

Para criar clusters de HPC em blocos de capacidade reservados, tem de concluir os seguintes passos:

  1. Escolha uma opção de consumo e obtenha capacidade
  2. Escolha uma opção de implementação e um orquestrador
  3. Escolha o sistema operativo ou a imagem do cluster
  4. Crie o seu cluster

Escolha uma opção de consumo e obtenha capacidade

As opções de consumo determinam como os recursos são obtidos para o seu cluster. Para criar um cluster com funcionalidades de gestão melhoradas, tem de pedir blocos de capacidade para uma implementação densa.

A tabela seguinte resume as principais diferenças entre as opções de consumo para blocos de capacidade:

Opção de consumo Reservas futuras para blocos de capacidade Início flexível (pré-visualização)
Caraterísticas da carga de trabalho Cargas de trabalho distribuídas de grande escala e de execução prolongada que requerem recursos densamente atribuídos Cargas de trabalho de curta duração que requerem recursos densamente alocados
Duração Qualquer hora Até 7 dias
Preemptível Não Não
Quota Verifique se tem quota suficiente antes de criar instâncias. É cobrada a quota preemptível.
Preços
Atribuição de recursos Denso Denso
Modelo de aprovisionamento Restrito a reserva Início flexível (pré-visualização)
Método de criação Para criar clusters de HPC e VMs, tem de fazer o seguinte:
  1. Reserve capacidade contactando a equipa da conta.
  2. Na data e hora escolhidas, pode usar a capacidade reservada para criar clusters de HPC. Consulte a secção Escolha uma opção de implementação.
Para criar VMs, selecione uma das seguintes opções:

Quando a capacidade pedida fica disponível, o Compute Engine aprovisiona-a.

Escolha uma opção de implementação

Consoante o nível de controlo de que precisa sobre a implementação do cluster, escolha entre uma implementação altamente gerida ou menos gerida que lhe dá mais controlo sobre a sua infraestrutura. Algumas das opções de implementação disponíveis incluem a instalação e a configuração de um orquestrador para uma gestão melhorada do cluster de HPC.

Altamente gerido

Se quiser que a Google implemente e configure a sua infraestrutura, use o Cluster Toolkit ou o Google Kubernetes Engine (GKE).

  • Cluster Toolkit: uma ferramenta de código aberto oferecida pela Google que simplifica a configuração e a implementação de clusters que usam o Slurm ou o GKE. Usa esquemas predefinidos para criar uma pasta de implementação baseada no esquema. Pode modificar os projetos ou a pasta de implementação para personalizar as implementações e a sua pilha de software. Em seguida, usa o Terraform ou o Packer para executar os comandos gerados pelo Cluster Toolkit para implementar o cluster.

    Para ver um tutorial sobre este método de implementação, consulte o artigo Crie um cluster Slurm de HPC com RDMA.

  • GKE: um serviço Kubernetes gerido e uma plataforma de orquestração de contentores de código aberto. O GKE oferece funcionalidades como a escala automática e a alta disponibilidade. Estas funcionalidades tornam o GKE adequado para implementar e gerir cargas de trabalho de HPC, incluindo a capacidade de orquestrar aplicações em contentores, o suporte de hardware especializado e a compatibilidade com o ecossistema do Google Cloud. Google CloudPode implementar clusters do GKE através do GKE diretamente ou através do Cluster Toolkit. Pode escolher entre a edição Standard ou o Autopilot do Google Kubernetes Engine (GKE).

    Para mais informações sobre este método de implementação, consulte o artigo Execute cargas de trabalho de HPC com H4D.

Menos gestão, mais controlo

Para um controlo mais detalhado dos seus clusters e do software instalado neles, crie um cluster do Compute Engine através de um dos seguintes métodos:

Pode usar estes métodos se quiser usar um orquestrador que não seja o Slurm nem o GKE. Depois de criar as VMs, instala manualmente qualquer software essencial de que a sua carga de trabalho de HPC precisa nas VMs. Também pode usar um script de arranque para verificar automaticamente a instalação do software e instalar o software, se necessário, quando a VM é iniciada.

Escolha a imagem do sistema operativo

A imagem do sistema operativo (SO) que escolher depende do serviço que usar para implementar o cluster.

  • Para clusters no GKE: use uma imagem de nó do GKE, como o SO otimizado para contentores. Se usar o Cluster Toolkit para implementar o seu cluster do GKE, é usada uma imagem do SO otimizado para contentores por predefinição. Para mais informações sobre imagens de nós, consulte o artigo Imagens de nós na documentação do GKE.

  • Para clusters no Compute Engine: pode usar uma das seguintes imagens:

  • Para clusters Slurm: o Cluster Toolkit implementa o cluster Slurm com uma imagem de VM de HPC baseada no Rocky Linux 8 otimizada para cargas de trabalho de HPC fortemente acopladas.

Crie o seu cluster de HPC

Depois de rever o processo de criação de clusters e tomar decisões preliminares para a sua carga de trabalho, crie o cluster através de uma das seguintes opções:

O que se segue?