O Google Kubernetes Engine (GKE) oferece uma plataforma escalonável de alto desempenho para cargas de trabalho de computação de alto desempenho (HPC). Para alcançar alto desempenho e eficiência operacional, use infraestrutura otimizada para cargas de trabalho, como famílias de VMs específicas para HPC, que o GKE oferece. Este documento descreve as práticas recomendadas para gerenciar sua infraestrutura e cargas de trabalho e otimizar a execução de aplicativos de HPC no GKE.
Para uma visão geral consolidada de todas as práticas recomendadas do GKE, consulte Práticas recomendadas para o GKE.Configuração de infraestrutura e nós
Nesta seção, descrevemos as práticas recomendadas para configurar sua infraestrutura e os nós do GKE para cargas de trabalho de HPC.
Escolher VMs H4D para cargas de trabalho com uso intensivo de computação
Selecione o hardware adequado para seu aplicativo. As VMs H4D foram projetadas para maximizar a capacidade de processamento de aplicativos de HPC com uso intenso de computação. As VMs H4D oferecem alto desempenho, baixo custo e escalonabilidade para cargas de trabalho com vários nós. O H4D faz parte da família de máquinas com otimização para computação, que oferece instâncias otimizadas para computação ideais para uso intenso de computação e HPC.
Para mais informações sobre a série de máquinas H4D, consulte Família de máquinas com otimização para computação: série de máquinas H4D.
Para instruções sobre como criar clusters do GKE otimizados para HPC, consulte Executar cargas de trabalho de computação de alto desempenho com H4D.
Considerar recursos alocáveis de nó
Entenda a diferença entre a capacidade total de recursos de um nó e os recursos alocáveis às suas cargas de trabalho. Os nós do GKE executam componentes do sistema, como o kubelet e o ambiente de execução de contêiner, que exigem recursos para funcionar. O GKE reserva uma quantidade predefinida de recursos para
funcionalidade do sistema e confiabilidade do nó. Entender a quantidade de alocação de recursos real que você tem para sua carga de trabalho (o tamanho da VM menos a capacidade que o GKE reserva) pode ajudar a dimensionar corretamente as solicitações de recursos para suas cargas de trabalho de HPC.
Para saber mais, acesse os recursos a seguir:
- Documentação do GKE sobre planejar tamanhos de nós: verificar recursos alocáveis em um nó.
- Documentação do Kubernetes sobre como reservar recursos de computação para daemons do sistema.
Reservar núcleos para reduzir remoções
Se uma carga de trabalho usar todos os núcleos físicos disponíveis em um nó, ela poderá competir com daemons do sistema sensíveis à latência. Essa disputa pode causar preempções frequentes em que o programador do SO interrompe a carga de trabalho de HPC para realizar tarefas do sistema, o que pode prejudicar a performance.
Para manter a performance, evite alocar todas as CPUs disponíveis para sua carga de trabalho. Os processos essenciais do sistema exigem uma pequena quantidade de sobrecarga da CPU para funcionar corretamente. Alocar 100% da capacidade de computação para sua carga de trabalho cria uma disputa de recursos com esses componentes do sistema, o que pode prejudicar o desempenho. Por exemplo, para tipos de máquinas H4D, configure sua carga de trabalho para usar menos de 192 CPUs e manter o desempenho.
Configuração de cluster e carga de trabalho
Nesta seção, descrevemos as práticas recomendadas para configurar seus clusters do GKE e implantar suas cargas de trabalho de HPC.
Usar o Cluster Toolkit para criar clusters
Use o Cluster Toolkit para simplificar a implantação e o gerenciamento de cargas de trabalho de HPC no GKE. O kit de ferramentas fornece plantas de projetos de referência que incorporam práticas recomendadas para configurar recursos de computação, armazenamento e rede em um ambiente de alto desempenho.
Para instruções sobre como usar o Cluster Toolkit para criar um cluster H4D, consulte Executar cargas de trabalho de computação de alto desempenho com H4D.
Usar o início flexível para gerenciamento de capacidade
Para cargas de trabalho de HPC dinâmicas ou não sensíveis ao tempo, use o início flexível para melhorar o gerenciamento de capacidade quando a capacidade H4D sob demanda ou reservada não estiver disponível. O início flexível gerencia o ciclo de vida dos nós H4D e ajuda a atender às necessidades de recursos temporárias ou urgentes.
Para mais informações, consulte Criar um cluster H4D com início flexível.
Usar uma política de posicionamento compacto para cargas de trabalho de acoplamento rígido
Implemente uma política de posicionamento compacto para cargas de trabalho de HPC sensíveis à latência e de acoplamento rígido. Essa política ajuda a garantir que todos os pods sejam provisionados próximos uns dos outros nas máquinas host. Essa configuração minimiza a latência de rede entre os nós, o que é crucial para aplicativos que dependem da comunicação entre nós.
Se você criar um cluster H4D usando a CLI gcloud, conforme descrito em Executar cargas de trabalho de computação de alto desempenho com H4D, o GKE configura automaticamente uma política de posicionamento compacto. Se você estiver usando o Cluster Toolkit, essa política também será configurada automaticamente. Se você quiser configurar manualmente o posicionamento compacto para outros tipos de nós, consulte Definir um posicionamento compacto para nós do GKE.
Definir solicitações de recursos adequadas
Inspecione a CPU alocável real nos seus nós antes de dimensionar os jobs de HPC.
Use o comando kubectl get node para conferir os recursos alocáveis. Verifique se os requisitos de CPU do seu job não excedem o que o GKE tem disponível após as reservas do sistema.
O GKE tem vários recursos para ajudar a analisar e ajustar automaticamente seus pedidos de recursos. Para mais informações, comece com Identificar cargas de trabalho subprovisionadas e superprovisionadas.
Dedicar nós inteiros a cargas de trabalho únicas
Configure seus jobs do MPI para ocupar um nó H4D inteiro. As instâncias H4D são provisionadas como VMs de host inteiro. Essa estratégia reserva a grande maioria da capacidade do nó, garantindo o isolamento da sua carga de trabalho. Use solicitações de recursos de contêiner ou antiafinidade de pods para garantir que as réplicas não sejam colocadas no mesmo nó físico.
Ativar o Cloud RDMA para rede de alta velocidade com VMs H4D
Se você usa VMs H4D, configure o manifesto de implantação para ativar o Cloud RDMA nos seus pods. Essa configuração ajuda a garantir que as interfaces de rede RDMA de alta velocidade sejam expostas corretamente à sua carga de trabalho em contêineres. Para instruções, consulte Configurar manifestos para RDMA.
Resumo das práticas recomendadas
A tabela a seguir resume as práticas recomendadas neste documento:
| Tópico | Tarefa |
|---|---|
| Configuração de infraestrutura e nós | Escolher VMs H4D para cargas de trabalho com uso intensivo de computação |
| Configuração de infraestrutura e nós | Considerar recursos alocáveis de nó |
| Configuração de infraestrutura e nós | Reservar núcleos para reduzir remoções |
| Configuração de cluster e carga de trabalho | Usar o Cluster Toolkit para criar clusters |
| Configuração de cluster e carga de trabalho | Usar o início flexível para gerenciamento de capacidade |
| Configuração de cluster e carga de trabalho | Usar uma política de posicionamento compacto para cargas de trabalho de acoplamento rígido |
| Configuração de cluster e carga de trabalho | Definir solicitações de recursos adequadas |
| Configuração de cluster e carga de trabalho | Dedicar nós inteiros a cargas de trabalho únicas |
| Configuração de cluster e carga de trabalho | Ativar o Cloud RDMA para rede de alta velocidade com VMs H4D |
A seguir
- Execute cargas de trabalho de computação de alto desempenho (HPC) com o H4D.
- Saiba como planejar o dimensionamento de nós do GKE