Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Slurm Workload Manager (slurm) - AWS ParallelCluster

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á.

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á.

Slurm Workload Manager (slurm)

Tamanho e atualização da capacidade do cluster

A capacidade do cluster é definida pelo número de nós de computação que o cluster pode escalar. Os nós de computação são apoiados por EC2 instâncias da Amazon definidas nos recursos computacionais da AWS ParallelCluster configuração (Scheduling/SlurmQueues/ComputeResources) e são organizados em filas (Scheduling/SlurmQueues) que mapeiam 1:1 para Slurm partições.

Em um recurso de computação, é possível configurar o número mínimo de nós de computação (instâncias) que sempre devem ser mantidos em execução no cluster (MinCount) e o número máximo de instâncias para as quais o recurso computacional pode ser escalado (MaxCount3).

No momento da criação do cluster, ou após uma atualização do cluster, AWS ParallelCluster inicia quantas EC2 instâncias da Amazon estiverem configuradas MinCount para cada recurso computacional (Scheduling/SlurmQueues/ ComputeResources) definido no cluster. As instâncias lançadas para cobrir a quantidade mínima de nós para os recursos computacionais no cluster são chamadas de nós estáticos. Uma vez iniciados, os nós estáticos devem ser persistentes no cluster e não são encerrados pelo sistema, a menos que ocorra um evento ou condição específica. Tais eventos incluem, por exemplo, o fracasso do Slurm ou exames EC2 de saúde da Amazon e a mudança do Slurm status do nó para DRAIN ou DOWN.

As EC2 instâncias da Amazon, na faixa de 1 até ‘MaxCount - MinCount’ (MaxCount menos) MinCount), lançadas sob demanda para lidar com o aumento da carga do cluster, são chamadas de nós dinâmicos. Sua natureza é efêmera, eles são iniciados para atender a trabalhos pendentes e são encerrados quando permanecem ociosos por um período de tempo definido Scheduling/SlurmSettings/ScaledownIdletime na configuração do cluster (padrão: 10 minutos).

Os nós estáticos e os nós dinâmicos estão obedecem ao seguinte padrão de nomenclatura:

  • Os nós estáticos são <Queue/Name>-st-<ComputeResource/Name>-<num>, em que <num> = 1..ComputeResource/MinCount

  • Os nós dinâmicos são <Queue/Name>-dy-<ComputeResource/Name>-<num>, em que <num> = 1..(ComputeResource/MaxCount - ComputeResource/MinCount)

Por exemplo, dada a seguinte AWS ParallelCluster configuração:

Scheduling: Scheduler: Slurm SlurmQueues: - Name: queue1 ComputeResources: - Name: c5xlarge Instances: - InstanceType: c5.xlarge MinCount: 100 MaxCount: 150

Os seguintes nós serão definidos em Slurm

$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]

Quando um recurso computacional tiver MinCount == MaxCount, todos os nós de computação correspondentes serão estáticos e todas as instâncias serão iniciadas no momento da criação/atualização do cluster e mantidas ativas e em execução. Por exemplo:

Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ComputeResources: - Name: c5xlarge Instances: - InstanceType: c5.xlarge MinCount: 100 MaxCount: 100
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]

Atualização da capacidade do cluster

A atualização da capacidade do cluster inclui adicionar ou remover filas, recursos computacionais ou alterar o MinCount/MaxCount de um recurso computacional. A partir da AWS ParallelCluster versão 3.9.0, reduzir o tamanho de uma fila exige que a frota de computação seja interrompida ou QueueUpdateStrategyconfigurada como TERMINATE antes que uma atualização do cluster ocorra. Não é necessário interromper a frota de computação ou configurar QueueUpdateStrategypara TERMINATE quando:

  • Adicionando novas filas ao Scheduling/ SlurmQueues

  • Adicionar novos recursos computacionais Scheduling/SlurmQueues/ComputeResources a uma fila

  • Aumentar a MaxCount de um recurso computacional

  • Aumento MinCount de um recurso computacional e aumento MaxCount do mesmo recurso computacional em pelo menos a mesma quantidade

Considerações e limitações

Esta seção tem como objetivo descrever fatores, restrições ou limitações importantes que devem ser levados em consideração ao redimensionar a capacidade do cluster.

  • Ao remover uma fila de Scheduling/SlurmQueues todos os nós de computação com nome<Queue/Name>-*, tanto estático quanto dinâmico, será removida do Slurm a configuração e as EC2 instâncias correspondentes da Amazon serão encerradas.

  • Ao remover um recurso Scheduling/SlurmQueues/ComputeResources de computação de uma fila, todos os nós de computação com nome<Queue/Name>-*-<ComputeResource/Name>-*, estático e dinâmico, serão removidos do Slurm a configuração e as EC2 instâncias correspondentes da Amazon serão encerradas.

Ao alterar o parâmetro MinCount de um recurso computacional, podemos distinguir dois cenários diferentes: se MaxCount for mantido igual a MinCount (somente capacidade estática) e se MaxCount for maior que MinCount (capacidade estática e dinâmica mista).

Alterações de capacidade somente com nós estáticos

  • SeMinCount == MaxCount, ao aumentar MinCount (eMaxCount), o cluster for configurado estendendo o número de nós estáticos até o novo valor de, MinCount <Queue/Name>-st-<ComputeResource/Name>-<new_MinCount> e o sistema continuar tentando iniciar EC2 instâncias da Amazon para atender à nova capacidade estática necessária.

  • SeMinCount == MaxCount, ao diminuir MinCount (eMaxCount) da quantidade N, o cluster for configurado removendo os últimos N nós estáticos <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount - N>...<old_MinCount>] e o sistema encerrará as instâncias correspondentes da Amazon EC2 .

    • Estado inicial MinCount = MaxCount = 100

    • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
    • Atualizar -30 em MinCount e MaxCount: MinCount = MaxCount = 70

    • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]

Alterações de capacidade com nós mistos

SeMinCount < MaxCount, MinCount ao aumentar em uma quantidade N (supondo que MaxCount será mantido inalterado), o cluster for configurado estendendo o número de nós estáticos até o novo valor de MinCount (old_MinCount + N): <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount + N> e o sistema continuará tentando iniciar EC2 instâncias da Amazon para atender à nova capacidade estática necessária. Além disso, para honrar a MaxCount capacidade do recurso computacional, a configuração do cluster é atualizada removendo os últimos N nós dinâmicos: <Queue/Name>-dy-<ComputeResource/Name>-[<MaxCount - old_MinCount - N>...<MaxCount - old_MinCount>] e o sistema encerrará as instâncias correspondentes da Amazon EC2 .

  • Estado inicial: MinCount = 100; MaxCount = 150

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
  • Atualização +30 para MinCount : MinCount = 130 (MaxCount = 150)

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-20] queue1* up infinite 130 idle queue1-st-c5xlarge-[1-130]

SeMinCount < MaxCount, ao aumentar MinCount e MaxCount com a mesma quantidade N, o cluster for configurado estendendo o número de nós estáticos para o novo valor de MinCount (old_MinCount + N): <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount + N> e o sistema continuará tentando iniciar EC2 instâncias da Amazon para atender à nova capacidade estática necessária. Além disso, nenhuma alteração será feita no número de nós dinâmicos para honrar o novo

MaxCount value.

  • Estado inicial: MinCount = 100; MaxCount = 150

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
  • Atualização +30 para MinCount : MinCount = 130 (MaxCount = 180)

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 130 idle queue1-st-c5xlarge-[1-130]

SeMinCount < MaxCount, ao diminuir a quantidade N (MinCountsupondo que MaxCount será mantida inalterada), o cluster será configurado removendo os últimos N nós estáticos de nós estáticos <Queue/Name>-st-<ComputeResource/Name>-[<old_MinCount - N>...<old_MinCount> e o sistema encerrará as instâncias correspondentes da Amazon. EC2 Além disso, para honrar a MaxCount capacidade do recurso computacional, a configuração do cluster é atualizada ampliando o número de nós dinâmicos para preencher a lacuna. MaxCount - new_MinCount: <Queue/Name>-dy-<ComputeResource/Name>-[1..<MazCount - new_MinCount>] Nesse caso, como esses são nós dinâmicos, nenhuma nova EC2 instância da Amazon será lançada, a menos que o agendador tenha trabalhos pendentes nos novos nós.

  • Estado inicial: MinCount = 100; MaxCount = 150

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
  • Atualização -30 no MinCount : MinCount = 70 (MaxCount = 120)

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 80 idle~ queue1-dy-c5xlarge-[1-80] queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]

SeMinCount < MaxCount, ao diminuir MinCount e MaxCount com a mesma quantidade N, o cluster for configurado removendo os últimos N nós estáticos <Queue/Name>-st-<ComputeResource/Name>-<old_MinCount - N>...<oldMinCount>] e o sistema encerrará as instâncias correspondentes da Amazon EC2 .

Além disso, nenhuma alteração será feita no número de nós dinâmicos para honrar o novo valor MaxCount.

  • Estado inicial: MinCount = 100; MaxCount = 150

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
  • Atualização -30 no MinCount : MinCount = 70 (MaxCount = 120)

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 80 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]

SeMinCount < MaxCount, ao diminuir a quantidade N (MaxCountMinCountsupondo que seja mantida inalterada), o cluster for configurado removendo os últimos N nós dinâmicos <Queue/Name>-dy-<ComputeResource/Name>-<old_MaxCount - N...<oldMaxCount>] e o sistema encerrará as EC2 instâncias correspondentes da Amazon no caso de elas estarem em execução. Nenhum impacto é esperado nos nós estáticos.

  • Estado inicial: MinCount = 100; MaxCount = 150

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
  • Atualização -30 no MaxCount : MinCount = 100 (MaxCount = 120)

  • $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-20] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]

Impactos nos empregos

Em todos os casos em que os nós são removidos e as EC2 instâncias da Amazon encerradas, um trabalho em lote executado nos nós removidos será colocado novamente na fila, a menos que não haja outros nós que satisfaçam os requisitos do trabalho. Neste último caso, o trabalho falhará com o status NODE_FAIL e desaparecerá da fila; se for o caso, será necessário reenviá-lo manualmente.

Se você estiver planejando executar uma atualização de redimensionamento de cluster, poderá impedir que os trabalhos sejam executados nos nós que serão removidos durante a atualização planejada. Isso é possível configurando os nós para serem removidos na manutenção. Esteja ciente de que a configuração de um nó em manutenção não afetará os trabalhos que já estiverem em execução no nó.

Suponha que, com a atualização de redimensionamento do cluster planejada, você vai remover o nó qeueu-st-computeresource-[9-10]. Você pode criar um Slurm reserva com o seguinte comando

sudo -i scontrol create reservation ReservationName=maint_for_update user=root starttime=now duration=infinite flags=maint,ignore_jobs nodes=qeueu-st-computeresource-[9-10]

Isso criará um Slurm reserva maint_for_update nomeada nos nósqeueu-st-computeresource-[9-10]. Quando a reserva é criada, nenhum outro trabalho pode ser executado nos nós qeueu-st-computeresource-[9-10]. Esteja ciente de que a reserva não impedirá que os trabalhos sejam alocados nos nós qeueu-st-computeresource-[9-10].

Após a atualização do redimensionamento do cluster, se o Slurm A reserva foi definida somente nos nós que foram removidos durante a atualização de redimensionamento. A reserva de manutenção será excluída automaticamente. Se, em vez disso, você tivesse criado um Slurm reserva em nós que ainda estão presentes após a atualização de redimensionamento do cluster. Talvez desejemos remover a reserva de manutenção nos nós após a atualização de redimensionamento ser executada, usando o seguinte comando

sudo -i scontrol delete ReservationName=maint_for_update

Para obter detalhes adicionais sobre Slurm reserva, veja o documento oficial do SchedMD aqui.

Processo de atualização do cluster em alterações de capacidade

Após uma alteração na configuração do agendador, as seguintes etapas são executadas durante o processo de atualização do cluster:

  • Pare AWS ParallelCluster clustermgtd (supervisorctl stop clustermgtd)

  • Gerar atualização Slurm configuração de partições a partir da AWS ParallelCluster configuração

  • Reiniciar slurmctld (feito por meio da fórmula do serviço do Chef)

  • Verificar status do slurmctld (systemctl is-active --quiet slurmctld.service)

  • Reload (Recarregar) Slurm configuração (scontrol reconfigure)

  • Iniciar clustermgtd (supervisorctl start clustermgtd)

Para obter mais informações sobre Slurm, consulte https://slurm.schedmd.com. Para downloads, consulte https://github.com/SchedMD/slurm/tags. Para o código-fonte, consulte https://github.com/SchedMD/slurm.

Versões de cluster e SLURM suportadas

A tabela a seguir lista o AWS ParallelCluster e Slurm versões que AWS suportam.

AWS ParallelCluster versão (ões) Compatível Slurm version

3.11.0

23.11.10

3.9.2, 3.9.3, 3.10.0

23.11.7

3.9.0, 3.9.1

23.11.4

3.8.0

23.02.7

3.7.2

23.02.6

3.7.1

23.02.5

3.7.0

23.02.4

3.6.0, 3.6.1

23.02.2

3.5.0, 3.5.1

22.05.8

3.4.0, 3.4.1

22.05.7

3.3.0, 3.3.1

22.05.5

3.1.4, 3.1.5, 3.2.0, 3.2.1

21.08.8-2

3.1.2, 3.1.3

21.08.6

3.1.1

21.08.5

3.0.0

20.11.8

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.