AWS ParallelCluster Auto Scaling - AWS ParallelCluster

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.

AWS ParallelCluster Auto Scaling

nota

Esta sección 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. Puede seguir utilizándolos en las versiones anteriores a la 2.11.4 inclusive, pero no son aptos para recibir actualizaciones futuras ni asistencia para la solución de problemas por parte de los equipos de AWS servicio y AWS soporte.

A partir de AWS ParallelCluster la versión 2.9.0, Auto Scaling no es compatible con Slurm Workload Manager (Slurm). Para obtener información sobre el escalado de colas múltiples Slurm y el escalado de colas múltiples, consulte la Tutorial sobre el modo de cola múltiple.

La estrategia de escalado automático que se describe en este tema se aplica a los clústeres de HPC que se implementan con Son of Grid Engine (SGE) o Torque Resource Manager (Torque). Al implementarse con uno de estos programadores,AWS ParallelCluster aplica las capacidades de escalado administrando el grupo de grupo de escalado automático de los nodos de computación y cambiando a continuación la configuración de programador según sea necesario. En el caso de los clústeres de HPC basados en AWS Batch,AWS ParallelCluster se basa en las capacidades de escalado elástico que proporciona el programador de tareas AWS gestionado. Para obtener más información, consulte Qué es Amazon EC2 Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.

Los clústeres implementados con AWS ParallelCluster ellos son elásticos de varias maneras. Si se establece, se initial_queue_size especifica el valor de tamaño mínimo del grupo de ComputeFleet Auto Scaling y también el valor de capacidad deseado. Si se establece, se max_queue_size especifica el valor de tamaño máximo del grupo ComputeFleet Auto Scaling.

Un grupo básico de Auto Scaling.

Escalado vertical

Cada minuto, se ejecuta un proceso denominado jobwatcher en el nodo principal. Evalúa el número actual de instancias que requieren los trabajos pendientes de la cola. Si el número total de nodos ocupados y nodos solicitados es superior al valor deseado actual en el grupo de escalado automático, se agregan más instancias. Si envía más trabajos, la cola se vuelve a evaluar y el grupo de escalado automático se actualiza al valor de max_queue_size especificado.

Cuando se usa un programador SGE, los trabajos tienen que ejecutar cada uno un número de ranuras (una ranura corresponde a una unidad de procesamiento; por ejemplo, una vCPU). Al evaluar el número de instancias que son necesarias para atender los trabajos pendientes actualmente, jobwatcher divide el número total de ranuras solicitadas por la capacidad de un único nodo de computación. La capacidad de un nodo de cómputo que corresponde a la cantidad de v disponibles CPUs depende del tipo de EC2 instancia de Amazon que se especifique en la configuración del clúster.

En el caso de Torque los programadores Slurm (anteriores a la AWS ParallelCluster versión 2.9.0), cada trabajo podría requerir un número de nodos y un número de ranuras para cada nodo, según las circunstancias. Para cada solicitud, jobwatcher determina el número de nodos de computación que son necesarios para cumplir los nuevos requisitos informáticos. Por ejemplo, adoptemos un clúster con c5.2xlarge (8 vCPU) como el tipo de instancia de informática, así como tres trabajos pendientes en cola con los siguientes requisitos:

  • trabajo1: 2 nodos / 4 ranuras cada uno

  • trabajo2: 3 nodos / 2 ranuras

  • trabajo3: 1 nodo / 4 ranuras

En este ejemplo, jobwatcher requiere que tres nuevas instancias de computación en el grupo de escalado automático se ocupen de los tres trabajos.

Limitación actual: la lógica de escalado automático vertical no considera los nodos ocupados parcialmente cargados. Por ejemplo, un nodo que está ejecutando una tarea se considera ocupado incluso si hay espacios vacíos.

Reducción

El tiempo de inactividad de nodo en cada uno de los nodos de computación se ejecuta y evalúa en un proceso llamado nodewatcher. Una instancia se termina si se cumplen las dos condiciones siguientes:

  • Una instancia no tiene ningún trabajo durante un periodo de tiempo superior a scaledown_idletime (la configuración predeterminada es 10 minutos)

  • No hay ningún trabajo pendiente en el clúster

Para terminar una instancia, nodewatcher llama a la operación TerminateInstanceInAutoScalingGroupAPI, que elimina una instancia si el tamaño del grupo de Auto Scaling es al menos el tamaño mínimo del grupo de Auto Scaling. Este proceso realiza un escalado descendente en el clúster sin que ello afecte a los trabajos en ejecución. También habilita un clúster elástico con un número base fijo de instancias.

Clúster estático

El valor de Auto Scaling es el mismo para HPC que con cualquier otra carga de trabajo. La única diferencia es que AWS ParallelCluster cuenta con un código que hace que interactúe de un modo más inteligente. Por ejemplo, si se requiere un clúster estático, deberá establecer los parámetros initial_queue_size y max_queue_size en el tamaño de clúster exacto necesario y, a continuación, establecer el parámetro maintain_initial_size en true. Esto hace que el grupo ComputeFleet Auto Scaling tenga el mismo valor para la capacidad mínima, máxima y deseada.