Compartir a través de


Conceptos de programación y escalado automático de CycleCloud

CycleCloud no es un programador, sino una plataforma que le permite implementar su propio programador en Azure. El programador administra y distribuye los trabajos en un clúster de nodos. CycleCloud proporciona una API REST y una biblioteca de Python para desarrollar adaptadores de autoescalado para planificadores. Con estos adaptadores, los clústeres administrados se escalan o reducen según la longitud de las colas de trabajos y las directivas de gobernanza.

Diagrama de orquestación

Planificadores

Un planificador es un software que acepta una lista de trabajos (o tareas) y distribuye estas tareas en conjuntos de recursos disponibles. Tiene en cuenta los requisitos de recursos de los trabajos, las dependencias entre trabajos y las prioridades. Estas listas de trabajos se conocen normalmente como colas.

CycleCloud incluye compatibilidad integrada con muchos programadores usados habitualmente (PBS Professional OSS, Slurm, IBM LSF, Grid Engine y HT Condor). Proporciona plantillas para implementar estos programadores en Azure. Estas plantillas son topologías predeterminadas que representan procedimientos recomendados para compilar clústeres de HPC en Azure. Usan características especializadas únicas, como las redes infiniBand de baja latencia.

Además, se crean proyectos para cada programador. Use los proyectos para instalar e inicializar demonios del programador en nodos principales y nodos de proceso.

Adaptadores del programador

Los adaptadores creados para cada tipo de programador desempeñan dos roles principales. Un rol agrega los requisitos de recursos de las colas del programador. El otro rol traduce los requisitos de recursos en solicitudes de asignación para conjuntos de tamaños de máquina virtual de Azure. Elabore estas solicitudes de asignación para determinadas restricciones. Estas restricciones pueden incluir cuotas de máquina virtual, límites al tamaño del clúster y límites impuestos por la topología de red InfiniBand para los tamaños de máquina virtual adecuados. En ciertos aspectos, estos adaptadores se asemejan a un agente que negocia la demanda y el suministro de varias partes.

Supervisión

El monitor es un proceso que se ejecuta en el servidor de aplicaciones CycleCloud y sondea periódicamente los servicios de Azure para obtener disponibilidad de recursos en la suscripción de Azure. Este monitor proporciona esta información a los adaptadores del programador para el agente de demanda.

Asignador de nodos

El asignador de nodos se ejecuta en el servidor de aplicaciones CycleCloud. Recibe la solicitud de asignación de los adaptadores del programador a través de una API de REST, aprovisiona los recursos de Azure necesarios para cumplir la solicitud y presenta los recursos aprovisionados de vuelta a los adaptadores del programador como conjuntos de nodos.

Nota:

Aunque los conceptos subyacentes son comunes entre los programadores, los detalles de implementación difieren entre los programadores. Para obtener más información sobre cada implementación, consulte las páginas del programador individuales: