Jornal do Dev

Gang scheduling e placement topológico no Kubernetes

Arquitetura & LinguagensEdição nº 16

Gang scheduling and topology-aware placement for AI training in Kubernetes

Artigo explica por que o scheduler padrão do Kubernetes falha em treinos distribuídos e defende gang scheduling e topology-aware placement para garantir colocação coordenada dos pods.

O Kubernetes scheduler padrão coloca pods individualmente, mas treinos distribuídos exigem duas garantias que esse modelo não oferece: colocação com largura de banda inter-GPU adequada e início simultâneo de todos os pods. Sem isso, comunicação sensível à latência domina cada passo, reduzindo throughput e deixando GPUs ocupadas porém subutilizadas.

A solução proposta é combinar topology-aware scheduling e gang scheduling: TAS agrupa nós em domínios topológicos (host, rack, bloco) com base em labels e força colocação dos pods dentro de um domínio que satisfaça requisitos de banda; gang scheduling garante que todos os pods do job comecem juntos, evitando alocação parcial. Ferramentas como Kueue e o plugin Coscheduling implementam essas abordagens — aplique labels de topologia, adote schedulers/plugins compatíveis e valide colocação em clusters com aceleradores antes do deploy.

Personificação do Kueue agrupando pods e um plugin Coscheduling coordenando para direcionar os pods a um mesmo domínio topológico.
Comparação: à esquerda colocação dispersa com GPUs parcialmente ociosas; à direita colocação coordenada com GPUs iniciando juntas e trabalhando em sincronia.

Quadrinho 1 de 2

  • #cloud-native
  • #kubernetes
  • #gang-scheduling
  • #distributed-training

Ver a edição completa