

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de instancias de spot
<a name="spot"></a>

AWS ParallelCluster utiliza instancias puntuales si la configuración del clúster ha establecido [`cluster_type`](cluster-definition.md#cluster-type) = spot. Las instancias de spot son más rentables que las instancias bajo demanda, pero pueden interrumpirse. El efecto de la interrupción varía según el programador utilizado. Podría ser útil aprovechar los *avisos de interrupción de la instancia puntual*, que proporcionan una advertencia de dos minutos antes de que Amazon EC2 deba detener o finalizar la instancia puntual. Para obtener más información, consulte [Interrupciones de instancias de spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html) en la *Guía del usuario de Amazon EC2*. En las secciones siguientes se describen tres escenarios en los que las instancias de spot pueden interrumpirse.

**nota**  
El uso de instancias de spot requiere que el rol de `AWSServiceRoleForEC2Spot` vinculado al servicio esté en su cuenta. Para crear este rol en su cuenta mediante el AWS CLI, ejecute el siguiente comando:  

```
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
```
Para obtener más información, consulte [Rol vinculado al servicio para solicitudes de instancias de spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#service-linked-roles-spot-instance-requests) en la *Guía del usuario de Amazon EC2*.

## Escenario 1: Se interrumpe una instancia de spot sin trabajos en ejecución
<a name="no-jobs"></a>

Cuando se produce esta interrupción, AWS ParallelCluster intenta reemplazar la instancia si la cola del programador tiene trabajos pendientes que requieren instancias adicionales o si el número de instancias activas es inferior al [`initial_queue_size`](cluster-definition.md#configuration-initial-queue-size) establecido. Si AWS ParallelCluster no puede aprovisionar nuevas instancias, se repite periódicamente una solicitud de nuevas instancias.

## Escenario 2: Se interrumpe una instancia de spot que ejecuta trabajos de un solo nodo
<a name="single-node"></a>

El comportamiento de esta interrupción depende del programador que se esté utilizando.

Slurm  
El trabajo falla con un código de `NODE_FAIL` estado igual a y se vuelve a poner en cola (a menos que `--no-requeue` se especifique al enviar el trabajo). Si el nodo es estático, se reemplaza. Si el nodo es un nodo dinámico, se termina y se restablece. Para obtener más información sobre `sbatch`, incluido el parámetro `--no-requeue`, incluido este, consulte [https://slurm.schedmd.com/sbatch.html](https://slurm.schedmd.com/sbatch.html) en la *documentación de Slurm*.  
Este comportamiento cambió en la AWS ParallelCluster versión 2.9.0. Las versiones anteriores finalizaban el trabajo con un código de estado de `NODE_FAIL` y el nodo se eliminaba de la cola del programador.

SGE  
Esto solo se aplica a AWS ParallelCluster las versiones anteriores a la 2.11.4 (inclusive). A partir de la versión 2.11.5, AWS ParallelCluster no admite el uso de programadores de SGE o Torque.
Se termina el trabajo. Si el trabajo ha habilitado el indicador "rerun" (mediante`qsub -r yes` o `qalter -r yes`) o la cola tiene el valor de `rerun` establecido en `TRUE`, el trabajo se reprograma. La instancia de computación se elimina de la cola del programador. Este comportamiento proviene de estos parámetros de configuración de SGE:  
+ `reschedule_unknown 00:00:30`
+ `ENABLE_FORCED_QDEL_IF_UNKNOWN`
+ `ENABLE_RESCHEDULE_KILL=1`

Torque  
Esto solo se aplica a AWS ParallelCluster las versiones anteriores a la 2.11.4 inclusive. A partir de la versión 2.11.5, AWS ParallelCluster no admite el uso de programadores de SGE o Torque.
El trabajo se elimina del sistema y el nodo se elimina del programador. El trabajo no se vuelve a ejecutar. Si se están ejecutando varios trabajos en la instancia cuando se interrumpe, se puede agotar el tiempo de espera de Torque durante la eliminación del nodo. Puede aparecer un error en el archivo de registro [`sqswatcher`](processes.md#sqswatcher). Esto no afecta a la lógica de escalado, y los posteriores reintentos realizan una limpieza adecuada.

## Escenario 3: Se interrumpe una instancia de spot que ejecuta trabajos de varios nodos
<a name="multi-node"></a>

El comportamiento de esta interrupción depende del programador que se esté utilizando.

Slurm  
El trabajo falla con un código de `NODE_FAIL` estado igual a y se vuelve a poner en cola (a menos que `--no-requeue` se especifique al enviar el trabajo). Si el nodo es estático, se reemplaza. Si el nodo es un nodo dinámico, se termina y se restablece. Otros nodos que estaban ejecutando los trabajos terminados se pueden asignar a otros trabajos pendientes o reducirse verticalmente una vez transcurrido el tiempo de [`scaledown_idletime`](scaling-section.md#scaledown-idletime) configurado .  
Este comportamiento cambió en la AWS ParallelCluster versión 2.9.0. Las versiones anteriores finalizaban el trabajo con un código de estado de `NODE_FAIL` y el nodo se eliminaba de la cola del programador. Otros nodos que estaban ejecutando los trabajos terminados pueden reducirse verticalmente una vez transcurrido el tiempo de [`scaledown_idletime`](scaling-section.md#scaledown-idletime) configurado.

SGE  
Esto solo se aplica a AWS ParallelCluster las versiones anteriores a la 2.11.4 (inclusive). A partir de la versión 2.11.5, AWS ParallelCluster no admite el uso de programadores de SGE o Torque.
El trabajo no se termina y continúa ejecutándose en los nodos restantes. El nodo de computación se elimina de la cola del programador, pero aparecerá en la lista de hosts como un nodo huérfano y no disponible.  
El usuario debe eliminar el trabajo cuando esto ocurra (`qdel {{<jobid>}}`). El nodo aún se muestra en la lista de hosts (`qhost`), aunque esto no afecta a AWS ParallelCluster. Para quitar el host de la lista, puede ejecutar el siguiente comando después de reemplazar la instancia.  

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

Torque  
Esto solo se aplica a AWS ParallelCluster las versiones anteriores a la 2.11.4 inclusive. A partir de la versión 2.11.5, AWS ParallelCluster no admite el uso de programadores de SGE o Torque.
El trabajo se elimina del sistema y el nodo se elimina del programador. El trabajo no se vuelve a ejecutar. Si se están ejecutando varios trabajos en la instancia cuando se interrumpe, se puede agotar el tiempo de espera de Torque durante la eliminación del nodo. Puede aparecer un error en el archivo de registro [`sqswatcher`](processes.md#sqswatcher). Esto no afecta a la lógica de escalado, y los posteriores reintentos realizan una limpieza adecuada.

Para obtener más información acerca de las instancias de spot, consulte [Instancias de spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html) en la *Guía del usuario de Amazon EC2*.