

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

# Reservas de capacidade no AWS PCS
<a name="working-with_capacity-reservations"></a>

 Você pode reservar a EC2 capacidade da Amazon em uma zona de disponibilidade específica e por um período específico usando reservas de capacidade sob demanda ou blocos de EC2 capacidade da Amazon para ML para garantir que você tenha a capacidade computacional necessária disponível quando precisar. 

 **As reservas de capacidade sob demanda (ODCRs)** permitem que você reserve capacidade computacional para suas EC2 instâncias da Amazon em uma zona de disponibilidade específica por qualquer período. Você pode criar e cancelar reservas a qualquer momento, sem compromissos de longo prazo ou pagamentos antecipados. ODCRs são ideais quando você precisa de reservas de capacidade flexíveis que podem ser modificadas conforme suas necessidades mudam. Para obter mais informações, consulte [Reservas de capacidade sob demanda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) no Guia do *usuário do Amazon Elastic Compute Cloud*. 

 **O Amazon EC2 Capacity Blocks for ML** permite que você reserve instâncias de computação acelerada baseadas em GPU para uso futuro, com até 8 semanas de antecedência. Você pode reservar blocos de 1 a 64 instâncias por períodos de 1 dia a 6 meses. Os blocos de capacidade são ideais para cargas de trabalho de aprendizado de máquina que exigem acesso garantido à capacidade da GPU em horários específicos. Para obter mais informações, consulte [Capacity Blocks for ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html) no *Guia do usuário do Amazon Elastic Compute Cloud*. 

**Topics**
+ [Usando ODCRs com o AWS PCS](capacity-reservations-odcr.md)
+ [Usando blocos de capacidade do Amazon EC2 para ML com PCS AWS](capacity-blocks.md)

# Usando ODCRs com o AWS PCS
<a name="capacity-reservations-odcr"></a>

 Você pode escolher como o AWS PCS consome suas instâncias reservadas. Se você criar um ODCR **aberto**, todas as instâncias correspondentes iniciadas pelo AWS PCS ou outros processos em sua conta serão contabilizadas na reserva. Com um ODCR **direcionado**, somente as instâncias iniciadas com o ID de reserva específico são contabilizadas na reserva. Para cargas de trabalho urgentes, as segmentações ODCRs são mais comuns. 

 Você pode configurar um grupo de nós de computação AWS PCS para usar um ODCR direcionado adicionando-o a um modelo de execução. Aqui estão as etapas para fazer isso: 

1.  Crie uma reserva de capacidade sob demanda (ODCR) direcionada usando o Guia do usuário do [Amazon EC2 Create](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-create.html) a Capacity Reservation. 

1.  Associe o ODCR a um modelo de lançamento. Há duas maneiras de fazer isso: 

   1.  **Associação direta do ODCR:** faça referência ao ID do ODCR diretamente no modelo de lançamento. Essa abordagem fornece controle estrito de capacidade e não oferece suporte ao preenchimento de instâncias (se o grupo de nós de computação solicitar mais instâncias do que as disponíveis no ODCR, nenhuma instância adicional será iniciada). 

   1.  **Associação ao grupo de reserva de capacidade:** adicione o ODCR a um grupo de reserva de capacidade e faça referência ao grupo no modelo de lançamento. Essa abordagem oferece suporte ao preenchimento de instâncias, permitindo que a AWS PCS lance instâncias sob demanda adicionais se a capacidade de reserva for excedida. 

1.  Crie ou atualize um grupo de nós de computação AWS PCS para usar o modelo de lançamento. Para obter mais informações, consulte o [Guia do usuário do AWS PCS Compute Node Groups](https://docs.aws.amazon.com/pcs/latest/userguide/working-with_cng.html). 

   1. Defina o `purchaseOption` do grupo de nós de computação como`ONDEMAND`.

## Exemplo: reserve e use instâncias hpc6a.48xlarge com um ODCR direcionado
<a name="capacity-reservations-odcr-example"></a>

 Esse exemplo de comando cria um ODCR direcionado para 32 instâncias hpc6a.48xlarge. Para iniciar as instâncias reservadas em um grupo de posicionamento, adicione `--placement-group-arn` ao comando. Você pode definir uma data de parada com `--end-date` e`--end-date-type`, caso contrário, a reserva continuará até que seja encerrada manualmente. 

```
aws ec2 create-capacity-reservation \
    --instance-type hpc6a.48xlarge \
    --instance-platform Linux/UNIX \
    --availability-zone us-east-2a \
    --instance-count 32 \
    --instance-match-criteria targeted
```

 O resultado desse comando será um ARN para o novo ODCR. [O ID do ODCR pode ser recuperado do ARN `"arn:aws:ec2:us-east-2:123456789012:capacity-reservation/ODCR-ID"` ou usando o Amazon EC2. DescribeCapacityReservations](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeCapacityReservations.html) 

 **Associação direta do ODCR:** adicione o ID do ODCR ao modelo de lançamento. Aqui está um exemplo de modelo de lançamento que faz referência à ID do ODCR. 

```
{
  "CapacityReservationSpecification": {
    "CapacityReservationTarget": {
      "CapacityReservationId": "cr-1234567890abcdef1"
    }
  }
}
```

 **Associação ao grupo de reserva de capacidade:** crie um grupo de reserva de capacidade e adicione o grupo ao modelo de lançamento. O comando a seguir cria um grupo de reserva de capacidade chamado`EXAMPLE-CR-GROUP`. 

```
aws resource-groups create-group \
    --name EXAMPLE-CR-GROUP \
    --configuration \
        '{"Type": "AWS::EC2::CapacityReservationPool"}' \
        '{"Type": "AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'
```

 O comando a seguir adiciona o ODCR ao grupo de reserva de capacidade. 

```
aws resource-groups group-resources --group EXAMPLE-CR-GROUP \
    --resource-arns arn:aws:ec2:us-east-2:123456789012:capacity-reservation/cr-1234567890abcdef1
```

 Com o ODCR criado e adicionado a um grupo de reserva de capacidade, agora ele pode ser conectado a um grupo de nós de computação do AWS PCS adicionando-o a um modelo de execução. Aqui está um exemplo de modelo de lançamento que faz referência ao grupo de reserva de capacidade. 

```
{
  "CapacityReservationSpecification": {
    "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-2:123456789012:group/EXAMPLE-CR-GROUP"
  }
}
```

 Por fim, crie ou atualize um grupo de nós de computação AWS PCS para usar instâncias hpc6a.48xlarge e use o modelo de execução que faz referência ao ODCR. Para um grupo de nós estático, defina instâncias mínima e máxima para o tamanho da reserva (32). Para um grupo dinâmico de nós, defina o mínimo de instâncias como 0 e o máximo para o tamanho de instância desejado. 

 Este exemplo é uma implementação simples de um único ODCR provisionado para um grupo de nós de computação. Mas, o AWS PCS suporta muitos outros designs. Por exemplo, você pode subdividir um grande grupo ODCR ou de reserva de capacidade entre vários grupos de nós de computação. Ou você pode usar ODCRs aquela outra conta da AWS criada e compartilhada com a sua. 

 Para obter mais informações, consulte [Reservas de capacidade sob demanda e blocos de capacidade para ML no Guia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservation-overview.html) do *usuário do Amazon Elastic Compute Cloud*. 

# Usando blocos de capacidade do Amazon EC2 para ML com PCS AWS
<a name="capacity-blocks"></a>

O Amazon EC2 Capacity Blocks for ML é uma opção de compra do Amazon EC2 que permite que você pague antecipadamente para reservar instâncias de computação acelerada baseadas em GPU dentro de um intervalo específico de data e hora para suportar cargas de trabalho de curta duração. As instâncias que são executadas dentro de um bloco de capacidade são automaticamente colocadas próximas umas das outras dentro do Amazon EC2 UltraClusters, para redes de baixa latência, em escala de petabits e sem bloqueio. Para obter mais informações, consulte [Capacity Blocks for ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html) no *Guia do usuário do Amazon Elastic Compute Cloud*.

Você pode usar um modelo de execução para que o AWS PCS use um bloco de capacidade ao iniciar instâncias para um grupo de nós de computação.

**nota**  
AWS O PCS introduziu suporte para blocos de capacidade desde a versão 24.05 do Slurm.

## Limitações
<a name="capacity-blocks-limitations"></a>
+ AWS O PCS suporta somente blocos de capacidade com famílias de instâncias P5en, P5e, P5 e P4d.
+ Você só pode associar um grupo de nós de computação a 1 bloco de capacidade por vez.
+ Você não pode associar um grupo de nós de computação a um grupo de reserva de capacidade que combine vários blocos de capacidade.
+ Os blocos de capacidade devem estar em um `active` estado `scheduled` ou para serem usados com o AWS PCS. Você não pode usar blocos de capacidade em outros estados, como`payment-failed`. Para obter mais informações, consulte [Exibir blocos de capacidade](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-view.html) no *Guia do usuário do Amazon Elastic Compute Cloud*.

## Expiração do bloco de capacidade
<a name="capacity-blocks-expiration"></a>

Os blocos de capacidade são limitados a um intervalo específico de data e hora. Quando um bloco de capacidade expira:
+ O grupo de nós de computação associado a esse bloco de capacidade continua existindo e permanece associado às mesmas filas.
+ Todas as instâncias no grupo de nós de computação são encerradas e os trabalhos ativos podem falhar, com base nas configurações do Slurm.
+ AWS O PCS não pode iniciar novas instâncias no grupo de nós de computação.
+ Todos os trabalhos em fila ou recém-enviados permanecem em estado pendente até que outro grupo de nós de computação seja anexado à fila ou você atualize o grupo de nós de computação para usar um novo modelo de execução que especifique um novo bloco de capacidade.

# Configurar um grupo de nós de computação AWS PCS para usar um bloco de capacidade
<a name="capacity-blocks-configure-cng"></a>

**Para associar um bloco de capacidade a um grupo de nós de computação**

1. Crie um modelo de EC2 lançamento da Amazon para AWS PCS que especifique seu bloco de capacidade. Para obter mais informações sobre a criação de um modelo de lançamento para AWS PCS, consulte[Usando modelos de lançamento do Amazon EC2 com PCS AWS](working-with_launch-templates.md).

   Seu modelo de lançamento deve incluir:
   + O valor `MarketType` de `InstanceMarketOptions` deve ser definido como`capacity-block`.
   + A `CapacityReservationSpecification` com um válido `CapacityReservationId`
   + Um válido `InstanceType` que corresponda ao tipo de instância do bloco de capacidade que você comprou.

1. Crie um grupo de nós de computação que use o modelo de execução. Para obter mais informações, consulte [Criação de um grupo de nós de computação no AWS PCS](working-with_cng_create.md). Você também pode atualizar um grupo de nós de computação existente para usar o modelo de execução. Para obter mais informações, consulte [Atualização de um grupo de nós de computação AWS PCS](working-with_cng_update.md).

   Quando você cria ou atualiza o grupo de nós de computação:
   + A identidade do IAM que você usa para criar ou atualizar o grupo de nós de computação precisa ter a seguinte permissão:

     ```
     ec2:DescribeCapacityReservations
     ```

     Para obter mais informações, consulte [Permissões mínimas para AWS PCS](security-min-permissions.md).
   + O bloco de capacidade deve estar em um `active` estado `scheduled` ou.
   + Defina o `purchaseOption` do grupo de nós de computação como`CAPACITY_BLOCK`.
   + O `maxInstanceCount` do grupo de nós de computação não deve exceder o tamanho do bloco de capacidade.
   + A zona de disponibilidade do grupo de nós de computação deve corresponder a 1 das zonas de disponibilidade de sub-rede do grupo de nós de computação.

**Importante**  
Você não pode alterar o tipo de instância de um grupo de nós de computação ao atualizá-lo. Você só pode usar um bloco de capacidade com o mesmo tipo de instância do grupo de nós de computação. Se quiser usar um bloco de capacidade com um tipo de instância diferente, você deve criar um novo grupo de nós de computação.

# Perguntas frequentes sobre o uso de blocos de capacidade com AWS PCS
<a name="capacity-blocks-faq"></a>

**Acabei de pagar por um bloco de capacidade e imediatamente tentei usá-lo com o AWS PCS, mas a criação do grupo de nós de computação falhou. O que aconteceu?**  
Seu bloco de capacidade pode não estar em um `active` estado `scheduled` ou. Tente novamente depois que o bloco de capacidade for `scheduled` ou`active`.

**Estou usando um bloco de capacidade no AWS PCS e comprei uma extensão antes que ela expirasse. Como continuo a usá-lo no AWS PCS?**  
Você não precisa fazer nada para continuar usando o Bloco de Capacidade no AWS PCS. A data de término do seu Bloco de Capacidade é atualizada após o pagamento da extensão ser bem-sucedido. Enquanto seu bloco de capacidade não expirar, o grupo de nós de computação continuará operando. Se o pagamento da extensão falhar, seu Bloco de Capacidade permanecerá `active` e o grupo de nós de computação operará até que o Bloco de Capacidade expire na data de término original.

**O que acontece com meus trabalhos em fila e em execução se meu bloco de capacidade expirar?**  
Os trabalhos em fila que não foram iniciados antes da expiração do Bloco de Capacidade permanecem pendentes até que você anexe outro grupo de nós de computação à fila ou atualize o grupo de nós de computação com um novo Bloco de Capacidade. Você ainda pode enviar trabalhos para a fila. Suas configurações do Slurm afetam os trabalhos ativos. Por padrão, os trabalhos ativos são automaticamente enfileirados novamente, mas podem apresentar erros ou falhar.

**Meu bloco de capacidade expirou. Devo fazer alguma coisa?**  
Você não precisa fazer nada. Você pode verificar o status de suas reservas de capacidade do EC2 no console do Amazon EC2. Quando um bloco de capacidade expira, o grupo de nós de computação associado a esse bloco de capacidade continua existindo e manipulando as mesmas filas. O grupo de nós de computação não tem nenhuma instância para executar trabalhos. Você pode excluir o grupo de nós de computação ou desassociá-lo das filas para impedir que os usuários enviem trabalhos que não serão executados.

**Quero usar um novo bloco de capacidade com meu grupo de nós de computação AWS PCS. O que devo fazer?**  
Recomendamos que você crie um novo grupo de nós de computação para usar o novo Bloco de Capacidade. Para obter mais informações, consulte [Configurar um grupo de nós de computação AWS PCS para usar um bloco de capacidade](capacity-blocks-configure-cng.md).

**Como posso compartilhar 1 bloco de capacidade entre clusters e serviços?**  
Você pode dividir um bloco de capacidade em vários clusters e serviços. Por exemplo, para dividir um bloco de capacidade com 64 `p5.48xlarge` instâncias com 20 nós no PCS-Cluster-1, 16 nós no PCS-Cluster-2 e os nós restantes para outros serviços, defina os dois como 20 no PCS-Cluster-1 `minInstanceCount` e `maxInstanceCount` 16 no PCS-Cluster-2.

**Posso usar mais de 1 bloco de capacidade ou capacidade combinada com 1 grupo de nós de computação?**  
Não. Somente 1 bloco de capacidade pode ser associado a um único grupo de nós de computação. AWS O PCS não suporta grupos de reserva de capacidade que combinam vários blocos de capacidade.

**Como sei quando meus blocos de capacidade começam ou expiram?**  
Independentemente do AWS PCS, o Amazon EC2 envia um `Capacity Block Reservation Delivered` evento EventBridge quando uma reserva do Bloco de Capacidade começa e um `Capacity Block Reservation Expiration Warning` evento 40 minutos antes da expiração da reserva do Bloco de Capacidade. Para obter mais informações, consulte [Monitorar blocos de capacidade usando EventBridge](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-monitor.html) o *Guia do usuário do Amazon Elastic Compute Cloud*.

**Como o Slurm rastreia o estado do meu bloco de capacidade?**  
Você pode executar `sinfo` para entender como o AWS PCS usa o Bloco de Capacidade. No exemplo de saída a seguir, uma fila está associada a um grupo de nós de computação que executa 4 instâncias de um bloco de `active` capacidade. Os nós estão no estado `idle` Slurm (disponíveis para uso e ainda não estão alocados para nenhuma tarefa).  

```
$ sinfo  
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST  
fanout up infinite 4 idle node-fanout-[1-4]
```
Se, em vez disso, os nós estiverem no `maint` estado, você poderá executar `scontrol show res` para ver detalhes sobre a reserva do Slurm que controla esse estado. No exemplo de saída a seguir, o Bloco de Capacidade está `scheduled` com uma data de início futura.  

```
$ scontrol show res                                                                                                  
ReservationName=node-fanout-scheduled StartTime=2025-10-14T13:09:17 EndTime=2025-10-14T13:11:17 Duration=00:02:00    
   Nodes=node-fanout-[1-4] NodeCnt=4 CoreCnt=16 Features=(null) PartitionName=(null) Flags=MAINT,SPEC_NODES          
   TRES=cpu=16                                                                                                       
   Users=root Groups=(null) Accounts=(null) Licenses=(null) State=ACTIVE BurstBuffer=(null)                          
   MaxStartDelay=(null)                                                                                              
   Comment=node-fanout Scheduled
```

**Como posso saber se os erros que estou recebendo ao iniciar a capacidade são porque meu bloco de capacidade está compartilhado?**  
Verifique as **reservas de capacidade** no console do Amazon EC2 para descobrir quantas instâncias do bloco de capacidade estão ativamente provisionadas. Verifique as tags de cada instância para descobrir qual serviço ou cluster a usa. Por exemplo, todas as instâncias do AWS PCS têm tags AWS PCS, como as `aws:pcs:cluster-id = pcs_l0mizqyk5o | aws:pcs:compute-node-group-id = pcs_ic7onkmfqk` que indicam a quais clusters e grupos de nós de computação a instância pertence. Em seguida, você pode verificar se o bloco de capacidade está na capacidade máxima.  
Você usa `scontrol show nodes` para verificar se um nó do Capacity Block em um cluster AWS PCS está acionando`ReservationCapacityExceeded`:  

```
[root@ip-172-16-10-54 ~]# scontrol show nodes test-node-8-gamma-cb-2  
NodeName=test-8-gamma-cb-2 CoresPerSocket=1  
   CPUAlloc=0 CPUEfctv=8 CPUTot=8 CPULoad=0.00  
   AvailableFeatures=test-8-gamma-cb,gpu  
   ActiveFeatures=test-8-gamma-cb,gpu  
   Gres=gpu:H100:1  
   NodeAddr=test-8-gamma-cb-2 NodeHostName=test-8-gamma-cb-2  
   RealMemory=249036 AllocMem=0 FreeMem=N/A Sockets=8 Boards=1  
   State=IDLE+CLOUD+POWERING_DOWN ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A  
   Partitions=my-q  
   BootTime=None SlurmdStartTime=None  
   LastBusyTime=Unknown ResumeAfterTime=None  
   CfgTRES=cpu=8,mem=249036M,billing=8  
   AllocTRES=  
   CurrentWatts=0 AveWatts=0  
   Reason=Failed to launch backing instance (Error Code: ReservationCapacityExceeded) [root@2025-08-28T15:15:33]
```

**Quando vários grupos de nós de computação estão conectados à mesma fila, como posso forçar a execução de um trabalho em instâncias com suporte do Capacity Block?**  
Você pode usar os recursos e restrições do Slurm para bloquear uma tarefa em um determinado conjunto de nós. Recomendamos que você não defina pesos do Slurm para cada grupo de nós de computação, pois isso só funciona com nós que não estão no estado. `maint`