

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.

# Utilisation de instances Spot
<a name="spot"></a>

AWS ParallelCluster utilise des instances Spot si la configuration du cluster a défini [`cluster_type`](cluster-definition.md#cluster-type) = spot. Les instances ponctuelles sont plus économiques que les instances à la demande, mais elles peuvent être interrompues. L'effet de l'interruption varie en fonction du planificateur spécifique utilisé. Il peut être utile de tirer parti des *avis d'interruption des instances Spot*, qui fournissent un avertissement de deux minutes avant qu'Amazon EC2 ne doive arrêter ou résilier votre instance Spot. Pour plus d'informations, consultez la section [Interruptions des instances Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html) dans le *guide de l'utilisateur Amazon EC2*. Les sections suivantes décrivent trois scénarios dans lesquels des instances Spot peuvent être interrompues.

**Note**  
L'utilisation d'instances Spot nécessite que le rôle `AWSServiceRoleForEC2Spot` lié au service existe dans votre compte. Pour créer ce rôle dans votre compte à l'aide de AWS CLI, exécutez la commande suivante :  

```
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
```
Pour plus d'informations, consultez la section [Rôle lié au service pour les demandes d'instance Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#service-linked-roles-spot-instance-requests) dans le guide de l'*utilisateur Amazon EC2*.

## Scénario 1 : Une instance Spot sans tâches en cours d'exécution est interrompue
<a name="no-jobs"></a>

Lorsque cette interruption se produit, AWS ParallelCluster tente de remplacer l'instance si la file d'attente du planificateur contient des tâches en attente qui nécessitent des instances supplémentaires, ou si le nombre d'instances actives est inférieur au [`initial_queue_size`](cluster-definition.md#configuration-initial-queue-size) paramètre. Si AWS ParallelCluster vous ne parvenez pas à approvisionner de nouvelles instances, une demande de nouvelles instances est répétée périodiquement.

## Scénario 2 : Une instance Spot exécutant des tâches à nœud unique est interrompue
<a name="single-node"></a>

Le comportement de cette interruption dépend du planificateur utilisé.

Slurm  
La tâche échoue avec un code d'état de`NODE_FAIL`, et la tâche est mise en attente (sauf indication contraire `--no-requeue` lors de la soumission de la tâche). Si le nœud est un nœud statique, il est remplacé. Si le nœud est un nœud dynamique, le nœud est arrêté et réinitialisé. Pour plus d'informations`sbatch`, notamment sur le `--no-requeue` paramètre, consultez la [https://slurm.schedmd.com/sbatch.html](https://slurm.schedmd.com/sbatch.html)documentation de *Slurm*.  
Ce comportement a changé dans la AWS ParallelCluster version 2.9.0. Les versions antérieures ont mis fin à la tâche avec un code d'état de `NODE_FAIL` et le nœud a été supprimé de la file d'attente du planificateur.

SGE  
Cela ne s'applique qu'aux AWS ParallelCluster versions antérieures à la version 2.11.4 incluse. À partir de la version 2.11.5, l'utilisation des planificateurs AWS ParallelCluster n'est pas prise en SGE charge. Torque
La tâche est arrêtée. Si la tâche a activé l'indicateur rerun (à l'aide de `qsub -r yes` ou de `qalter -r yes`) ou si la configuration `rerun` pour la file d'attente est définie sur `TRUE`, la tâche est replanifiée. L'instance de calcul est supprimée de la file d'attente du planificateur. Ce comportement est provoqué par ces paramètres de configuration SGE :  
+ `reschedule_unknown 00:00:30`
+ `ENABLE_FORCED_QDEL_IF_UNKNOWN`
+ `ENABLE_RESCHEDULE_KILL=1`

Torque  
Cela ne s'applique qu'aux AWS ParallelCluster versions antérieures à la version 2.11.4 incluse. À partir de la version 2.11.5, l'utilisation des planificateurs AWS ParallelCluster n'est pas prise en SGE charge. Torque
La tâche est supprimée du système et le nœud est supprimé du planificateur. Le job n'est pas refait. Si plusieurs tâches sont en cours d'exécution sur l'instance lorsqu'elle est interrompue, Torque peut expirer pendant la suppression du nœud. Une erreur peut s'afficher dans le fichier [`sqswatcher`](processes.md#sqswatcher) journal. Cela n'affecte pas la logique de dimensionnement, et un nettoyage approprié est effectué lors de nouvelles tentatives ultérieures.

## Scénario 3 : Une instance Spot exécutant des tâches à plusieurs nœuds est interrompue
<a name="multi-node"></a>

Le comportement de cette interruption dépend du planificateur utilisé.

Slurm  
La tâche échoue avec un code d'état de`NODE_FAIL`, et la tâche est mise en attente (sauf si cela `--no-requeue` a été spécifié lors de la soumission de la tâche). Si le nœud est un nœud statique, il est remplacé. Si le nœud est un nœud dynamique, le nœud est arrêté et réinitialisé. Les autres nœuds qui exécutaient les tâches terminées peuvent être affectés à d'autres tâches en attente ou réduits une fois le [`scaledown_idletime`](scaling-section.md#scaledown-idletime) délai configuré dépassé.  
Ce comportement a changé dans la AWS ParallelCluster version 2.9.0. Les versions antérieures ont mis fin à la tâche avec un code d'état de `NODE_FAIL` et le nœud a été supprimé de la file d'attente du planificateur. Les autres nœuds qui exécutaient les tâches terminées peuvent être réduits une fois le [`scaledown_idletime`](scaling-section.md#scaledown-idletime) délai configuré dépassé.

SGE  
Cela ne s'applique qu'aux AWS ParallelCluster versions antérieures à la version 2.11.4 incluse. À partir de la version 2.11.5, l'utilisation des planificateurs AWS ParallelCluster n'est pas prise en SGE charge. Torque
La tâche n'est pas terminée et continue de s'exécuter sur les nœuds restants. Le nœud de calcul est supprimé de la file d'attente du planificateur, mais apparaîtra dans la liste des hôtes en tant que nœud orphelin et indisponible.  
L'utilisateur doit supprimer la tâche lorsque cela se produit (`qdel <jobid>`). Le nœud s'affiche toujours dans la liste des hôtes (`qhost`), mais cela n'a aucune incidence AWS ParallelCluster. Pour supprimer l'hôte de la liste, exécutez la commande suivante après avoir remplacé l'instance.  

```
sudo -- bash -c 'source /etc/profile.d/sge.sh; qconf -dattr hostgroup hostlist <hostname> @allhosts; qconf -de <hostname>'
```

Torque  
Cela ne s'applique qu'aux AWS ParallelCluster versions antérieures à la version 2.11.4 incluse. À partir de la version 2.11.5, l'utilisation des planificateurs AWS ParallelCluster n'est pas prise en SGE charge. Torque
La tâche est supprimée du système et le nœud est supprimé du planificateur. Le job n'est pas refait. Si plusieurs tâches sont en cours d'exécution sur l'instance lorsqu'elle est interrompue, Torque peut expirer pendant la suppression du nœud. Une erreur peut s'afficher dans le fichier [`sqswatcher`](processes.md#sqswatcher) journal. Cela n'affecte pas la logique de dimensionnement, et un nettoyage approprié est effectué lors de nouvelles tentatives ultérieures.

Pour plus d'informations sur les instances Spot, consultez la section [Instances Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html) dans le *guide de l'utilisateur Amazon EC2*.