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 para otimizar a execução dos 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 a infraestrutura subjacente 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 de 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 cargas de trabalho com 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 os recursos alocáveis do 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 reservada pelo GKE) pode ajudar a dimensionar corretamente as solicitações de recursos para as cargas de trabalho de HPC.
Para saber mais, acesse os recursos a seguir:
- Documentação do GKE sobre planejamento de 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 interrupçõ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 o desempenho, evite alocar todas as CPUs disponíveis para sua carga de trabalho. Os processos essenciais do sistema exigem uma pequena quantidade de sobrecarga de CPU para funcionar corretamente. Alocar 100% da capacidade de computação para sua carga de trabalho cria contenção de recursos com esses componentes do sistema, o que pode prejudicar o desempenho. Por exemplo, para tipos de máquina H4D, para manter o desempenho, configure sua carga de trabalho para usar menos de 192 CPUs.
Configuração de cluster e carga de trabalho
Nesta seção, descrevemos as práticas recomendadas para configurar os clusters do GKE e implantar as 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 oferece 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 que não dependem de tempo, use o início flexível para melhorar o gerenciamento de capacidade quando a capacidade H4D on demand 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 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 solicitações 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 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 redes 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êiner. 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ós |
| 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 redes de alta velocidade com VMs H4D |
A seguir
- Executar cargas de trabalho de computação de alto desempenho (HPC) com H4D.
- Saiba como planejar o dimensionamento de nós do GKE