Este documento descreve as configurações no AI Hypercomputer que você precisa considerar antes de criar instâncias e clusters do Compute Engine. Analisar as configurações disponíveis ajuda a garantir o desempenho ideal das suas cargas de trabalho, além de minimizar tempos de inatividade e problemas de performance.
Fatores de configuração para criação de instâncias de computação e clusters
Antes de criar instâncias de computação e clusters para executar suas cargas de trabalho, considere qual configuração usar:
Se você usar o modelo de provisionamento vinculado à reserva, considere também os seguintes fatores:
Modelos de provisionamento
Com base na opção de consumo escolhida para criar instâncias ou clusters de computação, use um dos seguintes modelos de provisionamento para conseguir os recursos necessários:
Vinculada à 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 ficam disponíveis. Você tem acesso exclusivo aos recursos obtidos durante o período solicitado.
Spot: com base na disponibilidade, você pode conseguir recursos com grandes descontos 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 associa as instâncias de computação criadas à capacidade reservada anteriormente. Quando você reserva capacidade, o Compute Engine cria uma reserva vazia. Em seguida, no horário de início da reserva, acontece 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 fim do período de reserva, mesmo que você não use a capacidade.
Depois, você pode usar os recursos reservados para criar instâncias sem custos adicionais. Você paga apenas pelos 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 console do Google Cloud , na lista Modelo de provisionamento, selecione Vinculado à reserva.
Na Google Cloud CLI, inclua a flag
--provisioning-model=RESERVATION_BOUNDno comando.Na API Compute Engine, inclua o campo
"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 de computação e clusters. Se você usar o Cluster Toolkit para implantar seus 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 autônomas ou adicionar VMs de início flexível a um grupo de instâncias gerenciado (MIG) quando a capacidade solicitada estiver disponível. Quando você adiciona 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 oferecer enquanto você aguarda a capacidade total necessária para iniciar sua 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 conseguir 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 console do Google Cloud , na lista Modelo de provisionamento, selecione Início flexível.
Na CLI gcloud, inclua a flag
--provisioning-model=FLEX_STARTno comando.Na API Compute Engine, inclua o campo
"provisioningModel": "FLEX_START"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:
Crie clusters do GKE:
Modelo de provisionamento spot
Com o modelo de provisionamento spot, é possível criar instâncias de computação com grandes descontos 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 console do Google Cloud , na lista Modelo de provisionamento, selecione Spot.
Na CLI gcloud, inclua a flag
--provisioning-model=SPOTno comando.Na API Compute Engine, inclua o campo
"provisioningModel": "SPOT"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 do Compute.
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.
Você também pode provisionar seus grupos de instâncias de computação usando um dos seguintes métodos e incorporar seu próprio programador de carga de trabalho conforme necessário:
Tipos de implantação de bloqueio de reserva
Se você usar o modelo de provisionamento vinculado a reservas 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 de maneira densa. Essa implantação oferece os seguintes benefícios:
Rede não bloqueadora para conectividade de instância consistente de alta largura de banda e baixa latência usando a estrutura de rede dinâmica de aprendizado de máquina (ML) do Google.
Acesso à topologia de rede, que oferece 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 programações de manutenção para maximizar o agendamento de jobs e o tempo de atividade, além de minimizar os tempos de inatividade.
Modo operacional da reserva
Se você usar o modelo de provisionamento vinculado à reserva, o tipo de máquina reservado vai determinar o modo operacional da reserva para a capacidade reservada. Cada modo define como responder a erros do host ou relatórios com falhas, além do 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 capacidade dentro ou fora das suas reservas.
Seu nível de controle de posicionamento: se você pode ver 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 um dos seguintes modos operacionais de reserva: modo gerenciado ou modo de capacidade total.
Modo gerenciado
No modo gerenciado,o Google Cloud gerencia automaticamente o processo de manutenção e recuperação das suas instâncias de computação após erros do 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 os períodos de inatividade.
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 suas reservas, o Compute Engine só vai reiniciar as instâncias depois que você conseguir mais capacidade.
Reinicializações automáticas de instâncias:o Google Cloud cuida de 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 sua reserva e reinicia as instâncias.
Gerenciamento e visibilidade de blocos: é possível conferir a topologia, a integridade e o status de manutenção de reservas individuais e 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.
Possíveis limitações de taxa da API: as chamadas para a API "report faulty host" podem ser limitadas por taxa por reserva.
Modo de capacidade total
Em todos os modos de capacidade, você é responsável por gerenciar um processo de recuperação de instâncias de computação. É necessário iniciar manualmente a manutenção após erros de host ou relatórios de host com falha. Ao contrário do modo gerenciado, você também pode ver e iniciar a manutenção dos sub-blocos de reserva. Com esses recursos, você tem 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: você pode usar seus recursos reservados, bem como qualquer recurso disponível fora da sua reserva, para ajudar a migrar e reiniciar uma instância quando o host dela falhar.
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 ou relatório 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 conferir a topologia, a integridade e o status de manutenção de reservas, blocos e sub-blocos 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.
Sem limites de taxa de API: não há limites de taxa ao fazer chamadas para a API report faulty host.
Tipos de programação de manutenção
Se você usa o modelo de provisionamento vinculado à reserva, o Cluster Director oferece opções para programar a manutenção do host para as instâncias de computação em execução no cluster. Ao reservar capacidade, você pode especificar se quer agrupar as instâncias e ter um agendamento de manutenção sincronizado (agrupado) ou se as instâncias podem ser acoplado com flexibilidade e ter um agendamento 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 provisiona 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 estreitamente acoplada permite otimizar a performance do seu 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 independente de manutenção
Esse tipo de programação independente de manutenção dá às instâncias cronogramas 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 programações de manutenção separadas.