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

O Google Kubernetes Engine (GKE) oferece uma plataforma escalonável de alta performance para cargas de trabalho de computação de alto desempenho (HPC). Para alcançar alta performance e eficiência operacional, você pode usar uma 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 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.

Infraestrutura e configuração de nós

Esta seção descreve as práticas recomendadas para configurar sua infraestrutura subjacente e 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 são projetadas para maximizar a capacidade de processamento de aplicativos de HPC com uso intensivo de computação. As VMs H4D oferecem alta performance, baixo custo e escalonabilidade para cargas de trabalho de vários nós. O H4D faz parte da família de máquinas otimizada para computação, que oferece instâncias otimizadas para computação ideais para uso intensivo de computação e HPC.

Para mais informações sobre a série de máquinas H4D, consulte Família de máquinas otimizada para computação: série de máquinas H4D.

Para instruções sobre como criar clusters do GKE otimizados para computação de alto desempenho, consulte Executar cargas de trabalho de computação de alto desempenho com H4D.

Considerar recursos alocáveis de nós

Entenda a diferença entre a capacidade total de recursos de um nó e os recursos alocáveis às cargas de trabalho. Os nós do GKE executam componentes do sistema, como o kubelet e o ambiente de execução de contêineres, que exigem recursos para funcionar. O GKE reserva uma quantidade predefinida de recursos para a funcionalidade do sistema e a 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 cargas de trabalho de HPC.

Para saber mais, acesse os recursos a seguir:

Reservar núcleos para mitigar preemptivas

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 preemptivas frequentes em que o programador do SO interrompe a carga de trabalho de HPC para realizar tarefas do sistema, o que pode degradar 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. A alocação de 100% da capacidade de computação para sua carga de trabalho cria uma disputa de recursos com esses componentes do sistema, o que pode degradar a performance. Por exemplo, para tipos de máquinas H4D, para manter a performance, configure sua carga de trabalho para usar menos de 192 CPUs.

Configuração de clusters e cargas de trabalho

Esta seção descreve as práticas recomendadas para configurar clusters do GKE e implantar cargas de trabalho de HPC.

Usar o Cluster Toolkit para criação de 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 projetos de referência que incorporam práticas recomendadas para configurar recursos de computação, armazenamento e rede em um ambiente de alta performance.

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 instáveis (dinâmicas) ou insensíveis ao tempo, use o início flexível para melhorar o gerenciamento de capacidade quando a capacidade reservada ou sob demanda do H4D 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 instáveis ou sensíveis ao tempo.

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 da 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 vai configurar 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 o 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 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 as solicitações de recursos. Para mais informações, comece com Identificar cargas de trabalho com provisionamento insuficiente e excessivo.

Dedicar nós inteiros a cargas de trabalho únicas

Configure seus jobs da 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 que a carga de trabalho seja isolada. 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ê usar VMs H4D, configure o manifesto de implantação para ativar o Cloud RDMA para seus pods. Essa configuração ajuda a garantir que as interfaces de rede RDMA de alta velocidade sejam expostas corretamente à 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
Infraestrutura e configuração de nós Escolher VMs H4D para cargas de trabalho com uso intensivo de computação
Infraestrutura e configuração de nós Considerar recursos alocáveis de nós
Infraestrutura e configuração de nós Reservar núcleos para mitigar preemptivas
Configuração de clusters e cargas de trabalho Usar o Cluster Toolkit para criação de clusters
Configuração de clusters e cargas de trabalho Usar o início flexível para gerenciamento de capacidade
Configuração de clusters e cargas de trabalho Usar uma política de posicionamento compacto para cargas de trabalho de acoplamento rígido
Configuração de clusters e cargas de trabalho Definir solicitações de recursos adequadas
Configuração de clusters e cargas de trabalho Dedicar nós inteiros a cargas de trabalho únicas
Configuração de clusters e cargas de trabalho Ativar o Cloud RDMA para redes de alta velocidade com VMs H4D

A seguir