Visão geral da criação de clusters de HPC


Para criar a infraestrutura de aplicativos fortemente acoplados que escalonam em vários nós, crie um cluster de instâncias de máquina virtual (VM). Este guia oferece uma visão geral das principais considerações e etapas para configurar um cluster de instâncias de máquina virtual (VM) para cargas de trabalho de computação de alto desempenho (HPC) usando alocação densa de recursos.

O Compute Engine oferece várias maneiras de criar muitas instâncias de VM conectadas à mesma rede, mas que não exigem alocação densa de recursos. Por exemplo, é possível usar qualquer um dos seguintes métodos, que são abordados em outras partes da documentação do Compute Engine:

Também é possível criar um script que inclua os comandos para criar instâncias individuais e associar políticas de colocação compacta às instâncias para reduzir a latência.

Com o H4D (pré-lançamento), o Compute Engine adiciona suporte para executar cargas de trabalho de HPC massivas tratando um cluster inteiro de instâncias de VM como um único computador. Usar o posicionamento de VMs com reconhecimento de topologia permite acessar muitas instâncias em um único superbloco de rede e minimiza a latência de rede. Também é possível configurar o Cloud RDMA nessas instâncias para maximizar o desempenho da comunicação entre nós, o que é crucial para cargas de trabalho de HPC fortemente acopladas.

Você cria esses clusters de VM de HPC com H4D reservando blocos de capacidade em vez de recursos individuais. Usar blocos de capacidade para seu cluster oferece os seguintes recursos extras para implantação e gerenciamento desses ambientes de grande escala:

  • Posicionamento de instâncias de VM com reconhecimento de topologia
  • Sistemas avançados de reserva para proteger e gerenciar a capacidade
  • Grupos gerenciados de instâncias (MIGs) aprimorados projetados para conjuntos grandes e codependentes de instâncias de VM.
  • Programação e controles avançados de manutenção, que oferecem mais controle sobre quando e como a manutenção ocorre nas instâncias de VM, o que é crucial para cargas de trabalho de longa duração e sensíveis a interrupções. Isso inclui recursos como manutenção acionada pelo cliente e manutenção agrupada para blocos de recursos.

Terminologia de cluster

Ao trabalhar com blocos de capacidade, os seguintes termos são usados:

Blocos
Vários sub-blocos se interconectam com uma estrutura não bloqueadora, fornecendo uma interconexão de alta largura de banda. Qualquer CPU dentro do bloco é acessível em no máximo dois saltos de rede. O sistema expõe metadados de bloco e sub-bloco aos orquestradores para permitir o posicionamento ideal do job.
Clusters
Vários blocos se interconectam para formar um cluster que é escalonado para milhares de CPUs para executar cargas de trabalho de HPC em grande escala. Cada cluster é globalmente exclusivo. A comunicação entre diferentes blocos adiciona apenas um salto extra, mantendo alto desempenho e previsibilidade, mesmo em uma escala enorme. Metadados no nível do cluster também estão disponíveis para orquestradores para posicionamento inteligente de jobs em grande escala.
Implantação densa
Uma solicitação de recurso que aloca os recursos do acelerador fisicamente próximos uns dos outros para minimizar os saltos de rede e otimizar para a menor latência.
Estrutura de rede
Uma estrutura de rede oferece conectividade de alta largura de banda e baixa latência em todos os blocos e Google Cloud serviços de um cluster. O Jupiter é a arquitetura de rede de data centers do Google que usa redes definidas por software e comutadores de circuito óptico para evoluir a rede e otimizar a performance dela.
Nó ou host
Uma única máquina de servidor físico no data center. Cada host tem CPUs, memória e interfaces de rede de recursos de computação associados. O número e a configuração desses recursos de computação dependem da família de máquinas. As instâncias de VM são provisionadas em um host físico.
Orchestrator
Um orquestrador automatiza o gerenciamento dos seus clusters. Com um orquestrador, não é necessário gerenciar cada instância de VM no cluster. Um orquestrador, como o Slurm ou o Google Kubernetes Engine (GKE), processa tarefas como enfileiramento de jobs, alocação de recursos, escalonamento automático (com o GKE) e outras tarefas diárias de gerenciamento de cluster.
Sub-blocos
São unidades básicas em que um grupo de hosts fica fisicamente localizado em um único rack. Um switch Top-of-Rack (ToR) conecta esses hosts, permitindo uma comunicação extremamente eficiente e de salto único entre duas CPUs no subbloco. O Cloud RDMA facilita essa comunicação direta.

Visão geral do processo de criação de cluster com VMs H4D

Para criar clusters de HPC em blocos de capacidade reservados, siga estas etapas:

  1. Escolher uma opção de consumo e obter capacidade
  2. Escolher uma opção de implantação e um orquestrador
  3. Escolher o sistema operacional ou a imagem do cluster
  4. Crie seu cluster

Escolher uma opção de consumo e obter capacidade

As opções de consumo determinam como os recursos são obtidos para o cluster. Para criar um cluster com recursos de gerenciamento avançados, solicite blocos de capacidade para uma implantação densa.

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

Opção de consumo Reservas adiantadas para blocos de capacidade Início flexível (pré-lançamento)
Características da carga de trabalho Cargas de trabalho distribuídas de longa duração e em grande escala que exigem recursos alocados de forma densa Cargas de trabalho de curta duração que exigem recursos alocados de forma densa
Duração A qualquer momento Até sete dias
Preemptiva Não Não
Cota Verifique se você tem cota suficiente antes de criar instâncias. A cota preemptiva é cobrada.
Preços
Alocação de recursos Dense Dense
Modelo de provisionamento Vinculada à reserva Início flexível (pré-lançamento)
Método de criação Para criar clusters e VMs de HPC, faça o seguinte:
  1. Reserve capacidade entrando em contato com a equipe da sua conta.
  2. Na data e hora escolhidas, você pode usar a capacidade reservada para criar clusters de HPC. Consulte Escolher uma opção de implantação.
Para criar VMs, selecione uma das seguintes opções:

Quando a capacidade solicitada fica disponível, o Compute Engine a provisiona.

Escolher uma opção de implantação

Dependendo do nível de controle necessário sobre a implantação do cluster, escolha entre uma implantação altamente gerenciada ou menos gerenciada, que oferece mais controle sobre a infraestrutura. Algumas das opções de implantação disponíveis incluem a instalação e configuração de um orquestrador para melhorar o gerenciamento do cluster de HPC.

Totalmente gerenciado

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

  • Cluster Toolkit: uma ferramenta de código aberto oferecida pelo Google que simplifica a configuração e a implantação de clusters que usam o Slurm ou o GKE. Você usa blueprints predefinidos para criar uma pasta de implantação com base no blueprint. É possível modificar blueprints ou a pasta de implantação para personalizar implantações e sua pilha de software. Em seguida, use o Terraform ou o Packer para executar os comandos gerados pelo Cluster Toolkit e implantar o cluster.

    Para um tutorial sobre esse método de implantação, consulte Criar um cluster do Slurm de HPC com RDMA ativado.

  • GKE: um serviço gerenciado do Kubernetes e uma plataforma de orquestração de contêineres de código aberto. O GKE oferece recursos como escalonamento automático e alta disponibilidade. Esses recursos tornam o GKE adequado para implantação e gerenciamento de cargas de trabalho de HPC, incluindo a capacidade de orquestrar aplicativos contêinerizados, o suporte a hardware especializado e a compatibilidade com o ecossistema Google Cloud. É possível implantar clusters do GKE usando o GKE diretamente ou o Cluster Toolkit. É possível escolher entre a edição Standard ou o Autopilot do Google Kubernetes Engine (GKE).

    Para mais informações sobre esse método de implantação, consulte Executar cargas de trabalho de HPC com H4D.

Menos gerenciamento, mais controle

Para ter um controle mais granular sobre os clusters e o software instalado neles, crie um cluster do Compute Engine usando um dos seguintes métodos:

Use esses métodos se quiser usar um orquestrador diferente do Slurm ou do GKE. Depois que as VMs forem criadas, instale manualmente qualquer software essencial que sua carga de trabalho de HPC precise nas VMs. Também é possível usar um script de inicialização para verificar automaticamente a instalação do software e instalá-lo, se necessário, quando a VM for iniciada.

Escolher a imagem do sistema operacional

A imagem do sistema operacional (SO) escolhida depende do serviço usado para implantar o cluster.

  • Para clusters no GKE: use uma imagem de nó do GKE, como o Container-Optimized OS. Se você usar o Cluster Toolkit para implantar seu cluster do GKE, uma imagem do Container-Optimized OS será usada por padrão. Para mais informações sobre imagens de nós, consulte Imagens de nós na documentação do GKE.

  • Para clusters no Compute Engine: use uma das seguintes imagens:

  • Para clusters do Slurm: o Cluster Toolkit implanta o cluster do Slurm com uma imagem de VM de HPC baseada no Rocky Linux 8 otimizada para cargas de trabalho de HPC com acoplamento rígido.

Criar seu cluster de HPC

Depois de analisar o processo de criação do cluster e tomar decisões preliminares para sua carga de trabalho, crie o cluster usando uma das seguintes opções:

A seguir