View a markdown version of this page

Utilisation de instances Spot - AWS ParallelCluster

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

AWS ParallelCluster utilise des instances ponctuelles si la configuration du cluster a défini type_cluster = spot. Les instances ponctuelles sont plus rentables que On-Demand les instances, 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 notifications d'interruption d'instance Spot, qui fournissent un avertissement de deux minutes avant qu'Amazon EC2 n'arrête ou ne mette fin à votre instance Spot. Pour plus d'informations, consultez la section Spot Instance interruptions 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 le Service-linked rôle des demandes d'instance Spot dans le guide de l'utilisateur Amazon EC2.

Scénario 1 : Une instance Spot sans tâches en cours d'exécution est interrompue

Lorsque cette interruption se produit, AWS ParallelCluster essaie de remplacer l'instance si la file d'attente du planificateur contient des tâches en attente nécessitant des instances supplémentaires, ou si le nombre d'instances actives est inférieur au taille de file d'attente initiale paramètre. S'il n'est pas AWS ParallelCluster possible de provisionner de nouvelles instances, une demande pour 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

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

Slurm

La tâche échoue avec un code d'état deNODE_FAIL, et la tâche est mise en file d'attente (sauf si cela --no-requeue est spécifié lors de la soumission de la tâche). S'il s'agit d'un nœud statique, il est remplacé. Si le nœud est un nœud dynamique, il est arrêté et réinitialisé. Pour plus d'informations sur le --no-requeue paramètresbatch, notamment, consultez la sbatch documentation de Slurm.

Note

Ce comportement a changé dans la AWS ParallelCluster version 2.9.0. Les versions précédentes terminaient la tâche avec un code d'état de NODE_FAIL et le nœud était supprimé de la file d'attente du planificateur.

SGE
Note

Cela ne s'applique qu'aux AWS ParallelCluster versions antérieures à la version 2.11.4 incluse. À partir de la version 2.11.5, AWS ParallelCluster ne prend pas en charge l'utilisation de planificateurs SGE ou Torque de planificateurs.

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
Note

Cela ne s'applique qu'aux AWS ParallelCluster versions antérieures à la version 2.11.4 incluse. À partir de la version 2.11.5, AWS ParallelCluster ne prend pas en charge l'utilisation de planificateurs SGE ou Torque de planificateurs.

La tâche est supprimée du système et le nœud est supprimé du planificateur. Le job n'est pas rediffusé. Si plusieurs tâches sont en cours d'exécution sur l'instance lorsqu'elle est interrompue, Torque peut expirer lors de la suppression du nœud. Une erreur peut s'afficher dans le fichier sqswatcher journal. Cela n'affecte pas la logique de dimensionnement et un nettoyage approprié est effectué lors des nouvelles tentatives suivantes.

Scénario 3 : Une instance Spot exécutant des tâches à plusieurs nœuds est interrompue

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

Slurm

La tâche échoue avec un code d'état deNODE_FAIL, et la tâche est mise en file d'attente (sauf si cela --no-requeue a été spécifié lors de la soumission de la tâche). S'il s'agit d'un nœud statique, il est remplacé. Si le nœud est un nœud dynamique, il 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 la scaledown_idletime durée configurée écoulée.

Note

Ce comportement a changé dans la AWS ParallelCluster version 2.9.0. Les versions précédentes terminaient la tâche avec un code d'état de NODE_FAIL et le nœud était 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 la scaledown_idletime durée configurée écoulée.

SGE
Note

Cela ne s'applique qu'aux AWS ParallelCluster versions antérieures à la version 2.11.4 incluse. À partir de la version 2.11.5, AWS ParallelCluster ne prend pas en charge l'utilisation de planificateurs SGE ou Torque de planificateurs.

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'affecte pas 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
Note

Cela ne s'applique qu'aux AWS ParallelCluster versions antérieures à la version 2.11.4 incluse. À partir de la version 2.11.5, AWS ParallelCluster ne prend pas en charge l'utilisation de planificateurs SGE ou Torque de planificateurs.

La tâche est supprimée du système et le nœud est supprimé du planificateur. Le job n'est pas rediffusé. Si plusieurs tâches sont en cours d'exécution sur l'instance lorsqu'elle est interrompue, Torque peut s'arrêter lors de la suppression du nœud. Une erreur peut s'afficher dans le fichier sqswatcher journal. Cela n'affecte pas la logique de dimensionnement et un nettoyage approprié est effectué lors des nouvelles tentatives suivantes.

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