

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Réservations de capacité en AWS PCS
<a name="working-with_capacity-reservations"></a>

 Vous pouvez réserver des EC2 capacités Amazon dans une zone de disponibilité spécifique et pour une durée spécifique à l'aide des réservations de capacité à la demande ou des Amazon EC2 Capacity Blocks for ML afin de vous assurer de disposer de la capacité de calcul nécessaire lorsque vous en avez besoin. 

 **Les réservations de capacité à la demande (ODCRs)** vous permettent de réserver de la capacité de calcul pour vos EC2 instances Amazon dans une zone de disponibilité spécifique, quelle que soit la durée. Vous pouvez créer et annuler des réservations à tout moment, sans engagement à long terme ni paiement initial. ODCRs sont idéales lorsque vous avez besoin de réservations de capacité flexibles que vous pouvez modifier en fonction de l'évolution de vos besoins. Pour plus d'informations, consultez [la section Réservations de capacité à la demande](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) dans le *guide de l'utilisateur d'Amazon Elastic Compute Cloud*. 

 **Amazon EC2 Capacity Blocks for ML** vous permet de réserver des instances de calcul accéléré basées sur un GPU pour une utilisation future, jusqu'à 8 semaines à l'avance. Vous pouvez réserver des blocs de 1 à 64 instances pour des durées allant de 1 jour à 6 mois. Les blocs de capacité sont idéaux pour les charges de travail d'apprentissage automatique qui nécessitent un accès garanti à la capacité du GPU à des moments précis. Pour plus d'informations, consultez [Capacity Blocks for ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html) dans le *guide de l'utilisateur d'Amazon Elastic Compute Cloud*. 

**Topics**
+ [Utilisation ODCRs avec AWS PCS](capacity-reservations-odcr.md)
+ [Utilisation des blocs de capacité Amazon EC2 pour le ML avec PCS AWS](capacity-blocks.md)

# Utilisation ODCRs avec AWS PCS
<a name="capacity-reservations-odcr"></a>

 Vous pouvez choisir la manière dont AWS PCS consomme vos instances réservées. Si vous créez un ODCR **ouvert**, toutes les instances correspondantes lancées par AWS PCS ou d'autres processus sur votre compte sont prises en compte dans la réservation. Avec un ODCR **ciblé**, seules les instances lancées avec l'identifiant de réservation spécifique sont prises en compte dans la réservation. Pour les charges de travail sensibles au facteur temps, les tâches ciblées ODCRs sont plus courantes. 

 Vous pouvez configurer un groupe de nœuds de calcul AWS PCS pour utiliser un ODCR ciblé en l'ajoutant à un modèle de lancement. Voici les étapes à suivre pour ce faire : 

1.  Créez une réservation de capacité à la demande (ODCR) ciblée à l'aide du guide de l'[utilisateur Amazon EC2 Create a Capacity Reservation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-create.html). 

1.  Associez l'ODCR à un modèle de lancement. Il existe deux manières de procéder : 

   1.  **Association ODCR directe : référencez** l'ID ODCR directement dans le modèle de lancement. Cette approche permet un contrôle strict de la capacité et ne prend pas en charge le remblayage d'instances (si le groupe de nœuds de calcul demande plus d'instances que ce qui est disponible dans l'ODCR, aucune instance supplémentaire ne sera lancée). 

   1.  **Association de groupes de réservation de capacité :** ajoutez l'ODCR à un groupe de réservation de capacité et référencez le groupe dans le modèle de lancement. Cette approche prend en charge le remblayage des instances, ce qui permet à AWS PCS de lancer des instances à la demande supplémentaires si la capacité de réservation est dépassée. 

1.  Créez ou mettez à jour un groupe de nœuds de calcul AWS PCS pour utiliser le modèle de lancement. Pour plus d'informations, consultez le [guide de l'utilisateur de AWS PCS Compute Node Groups](https://docs.aws.amazon.com/pcs/latest/userguide/working-with_cng.html). 

   1. Définissez le groupe `purchaseOption` de nœuds de calcul sur`ONDEMAND`.

## Exemple : réserver et utiliser des instances hpc6a.48xlarge avec un ODCR ciblé
<a name="capacity-reservations-odcr-example"></a>

 Cet exemple de commande crée un ODCR ciblé pour 32 instances hpc6a.48xlarge. Pour lancer les instances réservées dans un groupe de placement, ajoutez `--placement-group-arn` à la commande. Vous pouvez définir une date de fin avec `--end-date` et`--end-date-type`, sinon, la réservation se poursuivra jusqu'à ce qu'elle soit annulée manuellement. 

```
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
```

 Le résultat de cette commande sera un ARN pour le nouvel ODCR. L'ID ODCR peut être récupéré à partir de l'ARN `"arn:aws:ec2:us-east-2:123456789012:capacity-reservation/ODCR-ID"` ou à l'aide d'[Amazon DescribeCapacityReservations EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeCapacityReservations.html). 

 **Association ODCR directe :** ajoutez l'identifiant ODCR au modèle de lancement. Voici un exemple de modèle de lancement qui fait référence à l'identifiant ODCR. 

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

 **Association de groupes de réservation de capacité :** créez un groupe de réservation de capacité et ajoutez-le au modèle de lancement. La commande suivante crée un groupe de réservation de capacité nommé`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"]}]}'
```

 La commande suivante ajoute l'ODCR au groupe de réservation de capacité. 

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

 Une fois l'ODCR créé et ajouté à un groupe de réservation de capacité, il peut désormais être connecté à un groupe de nœuds de calcul AWS PCS en l'ajoutant à un modèle de lancement. Voici un exemple de modèle de lancement qui fait référence au groupe de réservation de capacité. 

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

 Enfin, créez ou mettez à jour un groupe de nœuds de calcul AWS PCS pour utiliser les instances hpc6a.48xlarge et utilisez le modèle de lancement qui fait référence à l'ODCR. Pour un groupe de nœuds statique, définissez les instances minimale et maximale en fonction de la taille de la réservation (32). Pour un groupe de nœuds dynamique, définissez le nombre minimum d'instances sur 0 et le maximum sur la taille d'instance souhaitée. 

 Cet exemple est une implémentation simple d'un ODCR unique configuré pour un groupe de nœuds de calcul. Mais AWS PCS prend en charge de nombreux autres modèles. Par exemple, vous pouvez subdiviser un grand groupe ODCR ou de réservation de capacité entre plusieurs groupes de nœuds de calcul. Vous pouvez également utiliser ODCRs le compte AWS créé et partagé avec le vôtre. 

 Pour plus d'informations, consultez [la section Réservations de capacité à la demande et blocs de capacité pour le ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservation-overview.html) dans le *guide de l'utilisateur d'Amazon Elastic Compute Cloud*. 

# Utilisation des blocs de capacité Amazon EC2 pour le ML avec PCS AWS
<a name="capacity-blocks"></a>

Amazon EC2 Capacity Blocks for ML est une option d'achat Amazon EC2 qui vous permet de payer à l'avance pour réserver des instances de calcul accéléré basées sur un GPU à une date et à une heure spécifiques afin de prendre en charge des charges de travail de courte durée. Les instances qui s'exécutent au sein d'un bloc de capacité sont automatiquement placées à proximité les unes des autres dans Amazon EC2 UltraClusters, pour une mise en réseau non bloquante à faible latence, à l'échelle du pétabit. Pour plus d'informations, consultez [Capacity Blocks for ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html) dans le *guide de l'utilisateur d'Amazon Elastic Compute Cloud*.

Vous pouvez utiliser un modèle de lancement pour que AWS PCS utilise un bloc de capacité lorsqu'il lance des instances pour un groupe de nœuds de calcul.

**Note**  
AWS PCS a introduit le support pour les blocs de capacité depuis la version 24.05 de Slurm.

## Limitations
<a name="capacity-blocks-limitations"></a>
+ AWS PCS prend uniquement en charge les blocs de capacité avec les familles d'instances P5en, P5e, P5 et P4d.
+ Vous ne pouvez associer un groupe de nœuds de calcul qu'à un seul bloc de capacité à la fois.
+ Vous ne pouvez pas associer un groupe de nœuds de calcul à un groupe de réservation de capacité combinant plusieurs blocs de capacité.
+ Les blocs de capacité doivent être à `active` l'état `scheduled` ou pour être utilisés avec le AWS PCS. Vous ne pouvez pas utiliser les blocs de capacité dans d'autres États, tels que`payment-failed`. Pour plus d'informations, consultez la section [Afficher les blocs de capacité](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-view.html) dans le *guide de l'utilisateur d'Amazon Elastic Compute Cloud*.

## Expiration du bloc de capacité
<a name="capacity-blocks-expiration"></a>

Les blocs de capacité sont limités à une plage de dates et d'heures spécifiques. Lorsqu'un bloc de capacité expire :
+ Le groupe de nœuds de calcul associé à ce bloc de capacité continue d'exister et reste associé aux mêmes files d'attente.
+ Toutes les instances du groupe de nœuds de calcul sont mises hors service et les tâches actives risquent d'échouer, selon vos paramètres Slurm.
+ AWS PCS ne peut pas lancer de nouvelles instances dans le groupe de nœuds de calcul.
+ Toutes les tâches mises en file d'attente ou récemment soumises restent en attente jusqu'à ce qu'un autre groupe de nœuds de calcul soit attaché à la file d'attente ou que vous mettiez à jour le groupe de nœuds de calcul pour utiliser un nouveau modèle de lancement spécifiant un nouveau bloc de capacité.

# Configuration d'un groupe de nœuds de calcul AWS PCS pour utiliser un bloc de capacité
<a name="capacity-blocks-configure-cng"></a>

**Pour associer un bloc de capacité à un groupe de nœuds de calcul**

1. Créez un modèle de EC2 lancement Amazon pour AWS PCS qui spécifie votre bloc de capacité. Pour plus d'informations sur la création d'un modèle de lancement pour AWS PCS, consultez[Utilisation des modèles de lancement Amazon EC2 avec PCS AWS](working-with_launch-templates.md).

   Votre modèle de lancement doit inclure :
   + La valeur `MarketType` de `InstanceMarketOptions` doit être définie sur`capacity-block`.
   + A `CapacityReservationSpecification` avec un `CapacityReservationId`
   + Une valeur valide `InstanceType` correspondant au type d'instance du Capacity Block que vous avez acheté.

1. Créez un groupe de nœuds de calcul qui utilise le modèle de lancement. Pour de plus amples informations, veuillez consulter [Création d'un groupe de nœuds de calcul dans AWS PCS](working-with_cng_create.md). Vous pouvez également mettre à jour un groupe de nœuds de calcul existant pour utiliser le modèle de lancement. Pour de plus amples informations, veuillez consulter [Mise à jour d'un groupe de nœuds de calcul AWS PCS](working-with_cng_update.md).

   Lorsque vous créez ou mettez à jour le groupe de nœuds de calcul :
   + L'identité IAM que vous utilisez pour créer ou mettre à jour le groupe de nœuds de calcul doit disposer de l'autorisation suivante :

     ```
     ec2:DescribeCapacityReservations
     ```

     Pour de plus amples informations, veuillez consulter [Autorisations minimales pour les AWS PCS](security-min-permissions.md).
   + Le bloc de capacité doit être à `active` l'état `scheduled` ou.
   + Définissez le groupe `purchaseOption` de nœuds de calcul sur`CAPACITY_BLOCK`.
   + La taille `maxInstanceCount` du groupe de nœuds de calcul ne doit pas dépasser la taille du bloc de capacité.
   + La zone de disponibilité du groupe de nœuds de calcul doit correspondre à l'une des zones de disponibilité de sous-réseau du groupe de nœuds de calcul.

**Important**  
Vous ne pouvez pas modifier le type d'instance d'un groupe de nœuds de calcul lorsque vous le mettez à jour. Vous ne pouvez utiliser un bloc de capacité qu'avec le même type d'instance que le groupe de nœuds de calcul. Si vous souhaitez utiliser un bloc de capacité avec un autre type d'instance, vous devez créer un nouveau groupe de nœuds de calcul.

# Questions fréquemment posées sur l'utilisation des blocs de capacité avec les AWS PCS
<a name="capacity-blocks-faq"></a>

**Je viens de payer un bloc de capacité et j'ai immédiatement essayé de l'utiliser avec un AWS PCS, mais la création d'un groupe de nœuds de calcul a échoué. Que s’est-il passé ?**  
Votre bloc de capacité n'est peut-être pas dans `active` l'état « `scheduled` or ». Réessayez une fois que le bloc de capacité est `scheduled` ou`active`.

**J'utilise un bloc de capacité dans AWS PCS et j'ai acheté une extension avant son expiration. Comment puis-je continuer à l'utiliser dans AWS PCS ?**  
Vous n'avez rien à faire pour continuer à utiliser le bloc de capacité dans AWS PCS. La date de fin de votre bloc de capacité est mise à jour une fois que le paiement de votre extension a été effectué avec succès. Tant que votre bloc de capacité n'expire pas, le groupe de nœuds de calcul continue de fonctionner. Si le paiement de votre extension échoue, votre bloc de capacité est conservé `active` et le groupe de nœuds de calcul fonctionne jusqu'à ce que le bloc de capacité expire à sa date de fin initiale.

**Qu'advient-il de mes tâches en attente et en cours d'exécution si mon bloc de capacité expire ?**  
Les tâches en file d'attente qui n'ont pas démarré avant l'expiration du bloc de capacité restent en attente jusqu'à ce que vous attachiez un autre groupe de nœuds de calcul à la file d'attente ou que vous mettiez à jour le groupe de nœuds de calcul avec un nouveau bloc de capacité. Vous pouvez toujours ajouter des tâches à la file d'attente. Vos paramètres Slurm ont une incidence sur les tâches actives. Par défaut, les tâches actives sont automatiquement mises en file d'attente, mais elles peuvent comporter des erreurs ou échouer.

**Mon bloc de capacité a expiré. Dois-je faire quelque chose ?**  
Tu n'as rien à faire. Vous pouvez consulter la console Amazon EC2 pour connaître l'état de vos réservations de capacité EC2. Lorsqu'un bloc de capacité expire, le groupe de nœuds de calcul associé à ce bloc de capacité continue d'exister et de gérer les mêmes files d'attente. Le groupe de nœuds de calcul ne possède aucune instance pour exécuter des tâches. Vous pouvez supprimer le groupe de nœuds de calcul ou le dissocier des files d'attente pour empêcher les utilisateurs de soumettre des tâches qui ne seront pas exécutées.

**Je souhaite utiliser un nouveau bloc de capacité avec mon groupe de nœuds de calcul AWS PCS. Que dois-je faire ?**  
Nous vous recommandons de créer un nouveau groupe de nœuds de calcul pour utiliser le nouveau bloc de capacité. Pour de plus amples informations, veuillez consulter [Configuration d'un groupe de nœuds de calcul AWS PCS pour utiliser un bloc de capacité](capacity-blocks-configure-cng.md).

**Comment puis-je partager un bloc de capacité entre les clusters et les services ?**  
Vous pouvez répartir un bloc de capacité sur plusieurs clusters et services. Par exemple, pour diviser un bloc de capacité avec 64 `p5.48xlarge` instances avec 20 nœuds sur PCS-Cluster-1, 16 nœuds sur PCS-Cluster-2 et les nœuds restants pour d'autres services, définissez les deux et sur 20 pour PCS-Cluster-1 `minInstanceCount` et 16 `maxInstanceCount` pour PCS-Cluster-2.

**Puis-je utiliser plus d'un bloc de capacité ou une capacité combinée avec un groupe de nœuds de calcul ?**  
Non Un seul bloc de capacité peut être associé à un seul groupe de nœuds de calcul. AWS Le PCS ne prend pas en charge les groupes de réservation de capacité qui combinent plusieurs blocs de capacité.

**Comment savoir quand mes blocs de capacité commencent ou expirent ?**  
Indépendamment de AWS PCS, Amazon EC2 envoie un `Capacity Block Reservation Delivered` événement EventBridge lorsque la réservation d'un bloc de capacité commence et un `Capacity Block Reservation Expiration Warning` événement 40 minutes avant l'expiration de la réservation du bloc de capacité. Pour plus d'informations, consultez la section [Monitor Capacity Blocks using EventBridge](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-monitor.html) dans le *guide de l'utilisateur d'Amazon Elastic Compute Cloud*.

**Comment est-ce que Slurm suit l'état de mon bloc de capacité ?**  
Vous pouvez courir `sinfo` pour comprendre comment AWS PCS utilise le bloc de capacité. Dans l'exemple de sortie suivant, une file d'attente est associée à un groupe de nœuds de calcul qui exécute 4 instances à partir d'un bloc de `active` capacité. Les nœuds sont dans l'état `idle` Slurm (ils peuvent être utilisés et ne sont pas encore affectés à des tâches).  

```
$ sinfo  
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST  
fanout up infinite 4 idle node-fanout-[1-4]
```
Si les nœuds sont plutôt en `maint` état, vous pouvez courir `scontrol show res` pour voir les détails de la réservation Slurm qui contrôle cet état. Dans l'exemple de sortie suivant, le bloc de capacité `scheduled` indique une date de début future.  

```
$ 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
```

**Comment puis-je savoir si les erreurs que je reçois lors du lancement de Capacity sont dues au fait que mon bloc de capacité est partagé ?**  
Consultez les **réservations de capacité** dans la console Amazon EC2 pour savoir combien d'instances du bloc de capacité sont activement provisionnées. Vérifiez les balises de chaque instance pour savoir quel service ou cluster l'utilise. Par exemple, toutes les instances pour AWS AWS PCS possèdent des balises PCS `aws:pcs:cluster-id = pcs_l0mizqyk5o | aws:pcs:compute-node-group-id = pcs_ic7onkmfqk` qui indiquent à quels clusters et groupes de nœuds de calcul l'instance appartient. Vous pouvez ensuite vérifier si le bloc de capacité est à sa capacité maximale.  
Vous utilisez `scontrol show nodes` pour vérifier si un nœud Capacity Block d'un cluster AWS PCS déclenche `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]
```

**Lorsque plusieurs groupes de nœuds de calcul sont attachés à la même file d'attente, comment puis-je forcer l'exécution d'une tâche sur des instances basées sur Capacity Block ?**  
Vous pouvez utiliser les fonctionnalités et les contraintes de Slurm pour verrouiller une tâche sur un certain ensemble de nœuds. Nous vous recommandons de ne pas définir de poids Slurm pour chaque groupe de nœuds de calcul, car cela ne fonctionne qu'avec les nœuds qui ne sont pas dans cet état. `maint`