As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configurando a topologia de hardware em AWS PEÇAS
O Slurm toma melhores decisões de posicionamento quando conhece o layout de hardware interno de um nó de computação: como os núcleos se agrupam em soquetes e domínios de acesso à Non-Uniform memória (NUMA), como os caches L3 são mapeados para os núcleos e a quais núcleos cada GPU está conectada. Este tópico descreve como o Slurm modela esse layout e como o AWS PCS o configura em cada versão compatível do Slurm.
Topologia de CPU
Os núcleos de um nó de computação não são intercambiáveis. Eles são agrupados em pacotes físicos (soquetes) e domínios NUMA, e cada grupo compartilha recursos como controladores de memória e cache L3. Duas tarefas colocadas no mesmo grupo se comunicam mais rapidamente e compartilham cache; tarefas colocadas entre grupos competem menos por esses recursos compartilhados.
Slurm descreve esse agrupamento por nó com as configurações SocketsCoresPerSocket, e ThreadsPerCore em. slurm.conf O que o Slurm trata como um soquete é configurável com a configuração por nó: Parameters
-
numa_node_as_socket— cada domínio NUMA é um soquete. -
l3cache_as_socket— cada domínio de cache L3 é um soquete. Isso pode ser útil em determinados processadores em que o nível do soquete é muito baixo e o cache L3 pode fornecer uma melhor distribuição de tarefas.
Com a topologia de CPU configurada, as opções de agendamento com reconhecimento de soquete funcionam conforme o esperado: opções de trabalho como --ntasks-per-socket e e --sockets-per-node alocação baseada em soquete com os valores ou da configuração em nível de cluster. CR_Socket CR_Socket_Memory SelectTypeParameters Para obter mais informações sobre como o Slurm aloca soquetes, núcleos e threads, consulte Suporte para Multi-core/Multi-thread arquiteturas
AWS O PCS não configura a topologia da CPU nas versões do Slurm anteriores à 25.11, portanto, os nós dessas versões anunciam um núcleo por soquete e essas opções não têm efeito.
Afinidade com a GPU
Cada GPU em um nó está mais próxima de um domínio NUMA, portanto, um subconjunto dos núcleos do nó é local para ele. Uma tarefa executada em núcleos locais à sua GPU transfere dados por um caminho mais curto do que uma tarefa no outro soquete. O Slurm registra essa GPU-to-core afinidade por dispositivo (o Cores atributo de um gres.conf registro), junto com o layout de GPU-to-GPU interconexão (). Links
Nos nós de computação do AWS PCS, essas informações não podem ser configuradas estaticamente com antecedência, porque a enumeração de dispositivos depende da instância individual e os dispositivos só se tornam visíveis quando o nó é inicializado. O AutoDetectslurmd consulta a NVIDIA Management Library (NVML) e relata a afinidade detectada ao controlador no momento do registro.
nota
Enquanto um nó está desligado, Slurm não conhece sua GPU-to-CPU afinidade. A afinidade só fica disponível quando o nó é inicializado e registrado, portanto, as decisões de agendamento para nós desativados são tomadas sem ela.
A afinidade de GPU detectada automaticamente é expressa em termos de soquetes, portanto, exige a topologia correta da CPU. Se um nó registrar uma afinidade de GPU que não se encaixa nos limites de soquete configurados pelo nó, o Slurm define o nó como e o drena. INVALID_REG Para obter mais informações, consulte Solucionar problemas de registros de nós inválidos (INVALID_REG) em AWS PEÇAS.
Com a afinidade de GPU disponível, o Slurm pode colocar tarefas em núcleos locais às GPUs alocadas. A afinidade de recursos genéricos (GRES) é tratada na granularidade do soquete. A colocação depende das opções de trabalho; as combinações que usam a afinidade detectada incluem --ntasks-per-socket com --gpus-per-task e --gpus com. --ntasks-per-gpu
Comportamento da topologia por versão Slurm
O que o AWS PCS configura para você e o que você mesmo pode configurar depende da versão Slurm do cluster.
De Slurm 25.11
Topologia de CPU por meio de configurações personalizadas
Você mesmo pode configurar a topologia da CPU com as configurações Parameters personalizadas do Sockets Slurm para um grupo de nós de computação. Para obter mais informações, consulte Configurações personalizadas do Slurm para AWS Grupos de nós de computação PCS.
-
SocketsDefina o número de domínios que você deseja que o Slurm trate como soquetes. AWS O PCS calcula e define a correspondênciaCoresPerSocketpara você. O valor deve dividir a contagem de núcleos do nó uniformemente. -
ParametersDefina comonuma_node_as_socketoul3cache_as_socketpara declarar quais são os domínios.
Coml3cache_as_socket, Sockets é necessário: o AWS PCS não pode determinar o layout de cache L3 de um tipo de instância, então você fornece o número de domínios de cache L3. Isso se aplica a todas as versões do Slurm, incluindo 26.05 e posteriores.
exemplo— Domínios de cache L3 como soquetes em um hpc7a.96xlarge grupo de nós de computação (24 domínios de cache L3, 8 núcleos cada)
aws pcs update-compute-node-group \ --cluster-identifiermy-cluster\ --compute-node-group-identifiermy-cng-1\ --slurm-configuration \ 'slurmCustomSettings=[{parameterName=Sockets,parameterValue=24},{parameterName=Parameters,parameterValue=l3cache_as_socket}]'
nota
AWS O PCS valida a estrutura de um Sockets valor, não sua exatidão em relação ao hardware. Um valor que não corresponde ao layout real do nó leva a um posicionamento abaixo do ideal ou a INVALID_REG quando a detecção automática da GPU está ativa.
Topologia de GPU com AutoDetect (opcional)
No Slurm 25.11, a detecção automática de GPU está desativada por padrão. Você opta por adicionar AutoDetect ao registro de GPU do grupo de nós de computação em. gresCustomSettings Para obter mais informações, consulte Definindo configurações personalizadas do GRES em AWS PEÇAS.
AutoDetect exige que a topologia de CPU do nó seja configurada. Em 25.11, isso significa definir Sockets o grupo de nós de computação conforme descrito na seção anterior. Sem isso, os nós registram uma afinidade de GPU que não se encaixa no layout padrão de um núcleo por soquete, e o Slurm os define como. INVALID_REG
De Slurm 26.05
Topologia de CPU padrão
A partir do Slurm 26.05, o AWS PCS configura a topologia NUMA-based da CPU por padrão. AWS O PCS determina o número de domínios NUMA a partir do tipo de instância do grupo de nós de computação e dos conjuntos SocketsCoresPerSocket, e Parameters=numa_node_as_socket em cada nó.
As seguintes regras se aplicam:
-
Se um grupo de nós de computação usa vários tipos de instância, o AWS PCS aplica a topologia padrão somente quando todos eles têm o mesmo número de domínios NUMA. Caso contrário, o AWS PCS deixará a topologia indefinida, correspondendo ao comportamento das versões anteriores.
-
Se você definir
Socketsnas configurações personalizadas do Slurm do grupo de nós de computação, seu valor terá precedência e o AWS PCS não será adicionado.ParametersUse isso para substituir o padrão, por exemplo, para usar domínios de cache L3 como soquetes comParameters=l3cache_as_socket, o que ainda exige seu valor.Sockets
nota
A topologia automática se aplica aos clusters criados com o Slurm 26.05 ou posterior e aos clusters quando você os atualiza para 26.05 ou posterior.
Detecção automática de GPU por padrão
A partir do Slurm 26.05, o AWS PCS habilita a detecção automática de GPU por padrão. AWS O PCS é adicionado AutoDetect=full ao registro de GPU que gera para um grupo de nós de computação de GPU quando o layout do soquete do nó é conhecido, seja porque o AWS PCS configurou a topologia da CPU automaticamente ou porque você mesmo configurou. Sockets Quando o layout do soquete não está disponível, o AWS PCS emite seu registro de GPU semAutoDetect, correspondendo ao comportamento das versões anteriores. Para obter mais informações sobre o registro de GPU que o AWS PCS gera e como ele reconcilia esse registro com o seu, consulte. Como AWS O PCS aplica seus registros gres.conf