Práticas recomendadas para executar cargas de trabalho de HPC no GKE

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:

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