Auto Scaling de AWS ParallelCluster - 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.

Auto Scaling de AWS ParallelCluster

nota

Esta sección solo se aplica aAWS ParallelCluster las versiones anteriores a la 2.11.4, incluida. A partir de la versión 2.11.5,AWS ParallelCluster no admite el uso deSGETorque programadores. Puedes seguir usándolas en versiones hasta la 2.11.4 inclusive, pero no son aptas para recibir actualizaciones future ni asistencia para la solución de problemas por parte de los equipos deAWS servicio yAWS Support.

A partir deAWS ParallelCluster la versión 2.9.0, no se admite el uso de Auto Scaling conSlurm Workload Manager (Slurm). Para obtener más información sobreSlurm el escalado de colas múltiples, consulteTutorial sobre el modo de cola múltiple.

La estrategia de escalado auto que se describe en este tema se aplica a los clústeres de HPC que se implementan conSon of Grid Engine (SGE) oTorque Resource Manager (Torque). Cuando se implementa con uno de estos programadores,AWS ParallelCluster implementa las capacidades de escalado mediante la administración del grupo de Auto Scaling de los nodos de procesamiento y, a continuación, el cambio de la configuración del programador según sea necesario. Para los clústeres de HPC que se basan enAWS Batch,AWS ParallelCluster se basa en las capacidades de escalado elástico proporcionadas por el programador de trabajosAWS administrado. Para obtener más información, consulte Qué es Amazon EC2 Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.

Son varias las maneras en que los clústeres que AWS ParallelCluster implementa son elásticos. Al configurar, seinitial_queue_size especifica el valor de tamaño mínimo del grupo ComputeFleet Auto Scaling y también el valor de capacidad deseado. Al establecer el, semax_queue_size especifica el valor de tamaño máximo del grupo ComputeFleet Auto Scaling.


   Un grupo básico de Auto Scaling.

escalado

Cada minuto, un proceso llamado se jobwatcherejecuta en el nódulo de la cabeza. 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 mayor que el valor deseado actualmente en el grupo Auto Scaling, se agregarán más instancias. Si envía más trabajos, la cola se vuelve a evaluar y el grupo Auto Scaling se actualiza hasta alcanzar el valor especificadomax_queue_size.

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 procesamiento que corresponde a la cantidad de vCPUs disponibles depende del tipo de instancia de Amazon EC2 que se especifique en la configuración del clúster.

ConSlurm (antes de laAWS ParallelCluster versión 2.9.0) yTorque los programadores, cada trabajo podía requerir tanto un número de nodos como 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, sejobwatcher requieren tres instancias informáticas nuevas en el grupo Auto Scaling para ejecutar las tres tareas.

Limitación actual: la lógica de escalado auto no considera los nodos ocupados parcialmente cargados. Por ejemplo, un nodo que ejecuta un trabajo 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 de TerminateInstanceInAutoScalingGroupAPI, que elimina una instancia si el tamaño del grupo 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.

ClClúster

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, establece losmax_queue_size parámetrosinitial_queue_size y en el tamaño exacto del clúster requerido y, a continuación, establece elmaintain_initial_size parámetro en true. Esto hace ComputeFleet Auto Scaling valor el mismo valor el mismo valor en la capacidad.