Revisar as configurações de instância de computação e de cluster

Este documento descreve as configurações no Hipercomputador de IA a serem consideradas antes de criar instâncias e clusters do Compute Engine. A análise das configurações disponíveis ajuda a garantir a performance ideal das cargas de trabalho, além de minimizar as inatividades e os problemas de desempenho.

Fatores de configuração para criação de instâncias de computação e clusters

Antes de criar instâncias e clusters de computação para executar cargas de trabalho, considere qual configuração usar:

  1. O modelo de provisionamento

  2. As ferramentas de implantação de cluster

  3. Se você usar o modelo de provisionamento vinculado à reserva, também considere os seguintes fatores:

Modelos de provisionamento

Com base na opção de consumo escolhida para criar instâncias ou clusters de computação, é possível usar um dos seguintes modelos de provisionamento para receber os recursos necessários para criar instâncias:

  • Vinculado à reserva: é possível reservar recursos a um preço com desconto para uma data e duração futuras. No início do período de reserva, você pode usar os recursos reservados para criar instâncias ou clusters. Você tem acesso exclusivo aos recursos reservados durante o período da reserva.

  • Início flexível: é possível solicitar recursos com desconto por até sete dias. O Compute Engine faz o possível para programar o provisionamento dos recursos solicitados assim que eles estiverem disponíveis. Você tem acesso exclusivo aos recursos recebidos durante o período solicitado.

  • Spot: com base na disponibilidade, é possível receber recursos com desconto imediatamente. No entanto, o Compute Engine pode interromper ou excluir instâncias a qualquer momento para recuperar a capacidade.

Modelo de provisionamento vinculado à reserva

O modelo de provisionamento vinculado à reserva vincula as instâncias de computação criadas à capacidade reservada anteriormente. Ao reservar capacidade, o Compute Engine cria uma reserva vazia. Em seguida, no horário de início da reserva, ocorre o seguinte:

  • O Compute Engine adiciona o número reservado de instâncias à reserva. Você tem acesso exclusivo à capacidade reservada até o horário de término da reserva.

  • Google Cloud cobra pela capacidade reservada até o final do período de reserva, quer você use a capacidade ou não.

Em seguida, é possível usar os recursos reservados para criar instâncias sem cobranças adicionais. Você só paga por recursos que não estão incluídos na reserva, como discos ou endereços IP.

Para especificar o modelo de provisionamento vinculado à reserva ao criar instâncias de computação ou MIGs, faça o seguinte:

  • No Google Cloud console, na lista Modelo de provisionamento, selecione Vinculado à reserva.

  • Na Google Cloud CLI, inclua a flag --provisioning-model=RESERVATION_BOUND no comando.

  • Na API Compute Engine, inclua o "provisioningModel": "RESERVATION_BOUND" no corpo da solicitação.

Para mais informações sobre como definir esses parâmetros ao criar instâncias ou MIGs depois de reservar capacidade, consulte Visão geral da criação de instâncias e clusters de computação. Se você usar o Cluster Toolkit para implantar clusters, o blueprint do cluster definirá o modelo de provisionamento para você.

Modelo de provisionamento de início flexível

O modelo de provisionamento de início flexível permite criar VMs de início flexível independentes ou adicionar VMs de início flexível a um grupo gerenciado de instâncias (MIG) quando a capacidade solicitada estiver disponível. Ao adicionar VMs de início flexível a um MIG usando solicitações de redimensionamento, o MIG cria as instâncias de uma só vez. Essa abordagem ajuda a evitar cobranças desnecessárias pela capacidade parcial que o Compute Engine pode fornecer enquanto você aguarda a capacidade total necessária para iniciar a carga de trabalho. O modelo de provisionamento de início flexível provisiona recursos de um pool de capacidade seguro, o que ajuda a aumentar suas chances de receber recursos de alta demanda, como GPUs.

Para especificar o modelo de provisionamento de início flexível ao criar uma instância independente ou um modelo de instância para um MIG, faça o seguinte:

  • No Google Cloud console, na lista Modelo de provisionamento, selecione Início flexível.

  • Na CLI gcloud, inclua a flag --provisioning-model=FLEX_START no comando.

  • Na API Compute Engine, inclua o "provisioningModel": "FLEX_START" campo no corpo da solicitação.

Para mais informações sobre como criar instâncias ou clusters que usam o modelo de provisionamento de início flexível, consulte os seguintes documentos:

Modelo de provisionamento spot

O modelo de provisionamento spot permite criar instâncias de computação com desconto com base na disponibilidade. No entanto, o Compute Engine pode interromper ou excluir as instâncias criadas a qualquer momento para recuperar a capacidade. Esse processo é chamado de preempção.

Para especificar o modelo de provisionamento spot ao criar instâncias ou MIGs, faça o seguinte:

  • No Google Cloud console, na lista Modelo de provisionamento, selecione Spot.

  • Na CLI gcloud, inclua a flag --provisioning-model=SPOT no comando.

  • Na API Compute Engine, inclua o "provisioningModel": "SPOT" campo no corpo da solicitação.

Para mais informações sobre como definir esses parâmetros ao criar instâncias ou MIGs, consulte Visão geral da criação de instâncias e clusters de computação.

Ferramentas de implantação de cluster

O Cluster Toolkit é uma ferramenta de implantação de código aberto recomendada para criar clusters acelerados por GPU. O Cluster Toolkit pode implantar clusters do Google Kubernetes Engine (GKE) ou do Slurm.

Como alternativa, é possível provisionar grupos de instâncias de computação usando um dos seguintes métodos e, em seguida, incorporar seu próprio programador de carga de trabalho conforme necessário:

Tipos de implantação de blocos de reserva

Se você usar o modelo de provisionamento vinculado à reserva ao criar instâncias ou clusters de computação A4X Max, A4X, A4, A3 Ultra, A3 Mega e A3 High (8 GPUs), as máquinas que você receber serão implantadas automaticamente em blocos de hosts alocados densamente. Essa implantação oferece os seguintes benefícios:

  • Rede não bloqueadora para conectividade de instâncias de alta largura de banda e baixa latência consistente usando a estrutura de rede de aprendizado de máquina (ML) dinâmica do Google.

  • Acesso à topologia de rede que fornece uma visualização hierárquica da proximidade relativa entre as instâncias. Esse recurso é útil para casos de uso avançados de programação de jobs.

  • Posicionamento refinado e com reconhecimento de topologia ao usar orquestradores.

  • Controle refinado do usuário sobre os cronogramas de manutenção para maximizar a programação de jobs e o tempo de atividade e minimizar as inatividades.

Modo operacional da reserva

Se você usar o modelo de provisionamento vinculado à reserva, então o tipo de máquina reservado determinará o modo operacional de reserva para a capacidade reservada. Cada modo define como responder a erros de host ou relatórios de host com falha, bem como seu nível de visibilidade e controle sobre a infraestrutura da reserva.

Cada modo operacional de reserva define o seguinte:

  • Quem gerencia a recuperação: você ou Google Cloud.

  • Qual capacidade você usa para recuperação: apenas a capacidade reservada ou a capacidade dentro ou fora das reservas.

  • Seu nível de controle de posicionamento: se você pode visualizar e iniciar a manutenção antes do horário planejado para sub-blocos de reserva específicos para controle refinado.

Ao reservar capacidade para criar instâncias ou clusters de computação, é necessário escolher entre um dos seguintes modos operacionais de reserva: modo gerenciado ou modo de capacidade total.

Modo gerenciado

No modo gerenciado, Google Cloud gerencia automaticamente o processo de manutenção e recuperação das instâncias de computação após erros de host ou relatórios de host com falha. Essa abordagem é ideal quando a carga de trabalho exige alta estabilidade e você prefere um processo automatizado para minimizar as inatividades.

O modo gerenciado tem os seguintes recursos:

  • Usar apenas a capacidade reservada para recuperação: o Compute Engine usa apenas a capacidade reservada para reiniciar instâncias. Se não houver capacidade disponível nas reservas, o Compute Engine só reiniciará as instâncias depois que você receber mais capacidade.

  • Reinicializações automáticas de instâncias: Google Cloud gerencia todo o processo de recuperação de uma instância. Quando a manutenção do host é necessária, o Compute Engine migra automaticamente as instâncias para outras máquinas disponíveis na reserva e reinicia as instâncias.

  • Gerenciamento e visibilidade de blocos: é possível visualizar a topologia, a integridade e o status de manutenção de reservas e blocos de reserva individuais. Você também pode receber notificações de manutenção e, opcionalmente, iniciar a manutenção antes do horário programado para esses recursos.

  • Possíveis limites de taxa de API: as chamadas para a API de relatório de host com falha podem ter limites de taxa por reserva.

Modo de capacidade total

No modo de capacidade total, você é responsável por gerenciar um processo de recuperação de instâncias de computação. É necessário iniciar a manutenção manualmente após erros de host ou relatórios de host com falha. Ao contrário do modo gerenciado, também é possível visualizar e iniciar a manutenção dos sub-blocos de reserva. Esses recursos oferecem controle total e granular sobre o processo de manutenção e recuperação das instâncias.

O modo de capacidade total tem os seguintes recursos:

  • Usar capacidade reservada e não reservada para recuperação: é possível usar os recursos reservados, bem como todos os recursos disponíveis fora da reserva, para ajudar a migrar e reiniciar uma instância quando o host falha.

  • Reinicializações manuais de instâncias: você é responsável pelo processo de recuperação de uma instância. Quando a manutenção do host é necessária devido a um erro de host ou relatório de host com falha, o Compute Engine interrompe a instância. Só é possível reiniciar a instância após a conclusão da manutenção.

  • Gerenciamento e visibilidade de blocos e sub-blocos: é possível visualizar a topologia, a integridade e o status de manutenção de reservas individuais, blocos de reserva e sub-blocos de reserva. Você também pode receber notificações de manutenção e, opcionalmente, iniciar a manutenção antes do horário programado para esses recursos.

  • Sem limites de taxa de API: não há limites de taxa ao fazer chamadas para a API de relatório de host com falha.

Tipos de programação de manutenção

Se você usar o modelo de provisionamento vinculado à reserva, então o Cluster Director vai fornecer opções para programar a manutenção do host para as instâncias de computação em execução no cluster. Ao reservar capacidade, é possível especificar se as instâncias serão agrupadas e terão programação de manutenção sincronizada (agrupada) ou se as instâncias poderão ser acoplado com flexibilidade e ter programação de manutenção independente (independente).

Programação de manutenção agrupada

O tipo de programação de manutenção agrupada ajuda a garantir que, não importa quando o Compute Engine provisione uma instância de computação, todas as instâncias que executam a mesma carga de trabalho tenham a mesma frequência de manutenção planejada. Essa manutenção acoplada permite otimizar a performance do job, oferecendo controle total sobre a capacidade usada e não usada.

Um tipo de programação de manutenção de grupo é útil nos seguintes casos:

  • Seu ambiente usa um programador de jobs, como o Slurm ou o GKE.

  • Você quer executar treinamento ou outras cargas de trabalho de computação altamente paralelizadas.

Programação de manutenção independente

Esse tipo de programação de manutenção independente oferece às instâncias cronogramas de manutenção diferentes. Essa configuração é ideal se você quiser executar inferência ou treinamento de escala limitada em que as cargas de trabalho são executadas com mais eficiência quando têm cronogramas de manutenção separados.

A seguir