CycleCloud: conceptos básicos

En su mayoría básico, un sistema de informática de alto rendimiento (HPC) es un grupo de recursos computacionales respaldados por sistemas de archivos de alto rendimiento e interconectados por redes de baja latencia. Normalmente, estos recursos computacionales se administran mediante programadores de HPC, aplicaciones de software que programan trabajos.

La creación de sistemas HPC individuales en Azure a partir de unidades de infraestructura básicas, como Virtual Machines, discos e interfaces de red, puede resultar complicado, especialmente si estos recursos son efímeros, ya existentes solo durante el tiempo necesario para resolver la tarea de HPC. Además, los operadores quieren crear varios entornos de HPC independientes que se pueden adaptar a varias unidades de negocio, equipos de investigación o individuos. La administración de estos varios sistemas HPC puede ser de complejidad operativa.

¿Qué es CycleCloud?

Azure CycleCloud es una herramienta que ayuda a construir sistemas HPC en Azure. Organiza estos sistemas para que se dimensionen elásticamente según las tareas de HPC a mano, sin la molestia de administrar los bloques de creación básicos de Azure. CycleCloud está diseñado por un equipo de profesionales de HPC experimentados para administradores y usuarios de HPC, especialmente los usuarios que buscan crear sistemas HPC en Azure que se parezcan a la infraestructura interna de HPC con la que están familiarizados.

Diagrama de orquestación

De forma operativa, CycleCloud es un servidor de aplicaciones que se instala en una máquina virtual Linux en Azure o en un servidor local que tiene acceso a las API y los recursos de Azure. CycleCloud adquiere y aprovisiona máquinas virtuales de Azure para construir clústeres de CycleCloud que pueden integrar programadores y aplicaciones de usuario. CycleCloud también proporciona integraciones de escalado automático para varios programadores de HPC y un agente de CycleCloud que se ejecuta en máquinas virtuales de Azure.

Servidor de aplicaciones

Este servidor de aplicaciones proporciona:

  1. Una API REST para crear y administrar sistemas HPC en Azure.
  2. Interfaz gráfica de usuario que permite a un usuario administrar y supervisar sistemas HPC.
  3. Una CLI que facilita la integración de CycleCloud en flujos de trabajo existentes.
  4. Un almacén de datos NoSQL interno que almacena en caché el estado del clúster y del nodo.
  5. Un sistema de asignación y orquestación que adquiere y administra máquinas virtuales de Azure.
  6. Sistema de supervisión de nodos para máquinas virtuales existentes que alertan de cambios de estado.

Integraciones

CycleCloud también proporciona una serie de integraciones en programadores comunes y máquinas virtuales de Azure. El elemento proporciona lo siguiente:

  1. Un sistema de configuración y preparación de nodos para convertir una máquina virtual aprovisionada en un nodo de HPC.
  2. Escalado automático para programadores de HPC que traducen los requisitos de tareas del programador de HPC en recursos de Azure.

Qué puede hacer CycleCloud

CycleCloud está dirigido a operadores de HPC (administradores y usuarios) que implementan sistemas HPC en Azure y que quieren replicar la infraestructura que se han ejecutado internamente, desde el programador de HPC a los puntos de montaje del sistema de archivos para las instalaciones de aplicaciones y el acceso a datos. Estos usuarios están examinando especialmente la compatibilidad con aplicaciones, motores de flujo de trabajo y canalizaciones computacionales sin tener que volver a crear sus procesos internos.

CycleCloud proporciona una sintaxis de plantillas enriquecida y declarativa que permite a los usuarios describir su sistema HPC, desde la topología del clúster (el número y los tipos de nodos del clúster), hasta los puntos de montaje y las aplicaciones que se implementarán en cada nodo. CycleCloud está diseñado para trabajar con programadores de HPC, como PBSPro, Slurm, IBM LSF, Grid Engine y HT Condor, lo que permite a los usuarios crear diferentes colas en cada programador y asignarlas a nodos de proceso de diferentes tamaños de máquina virtual en Azure. Además, los complementos de escalado automático se integran con los nodos principales del programador que escuchan las colas de trabajos en cada sistema y dimensionar el clúster de proceso en consecuencia mediante la interacción con la API REST de escalado automático que se ejecuta en el servidor de aplicaciones.

Además de aprovisionar y crear nodos HPC, CycleCloud también proporciona un marco para preparar y configurar una máquina virtual, en esencia proporcionando un sistema para convertir una máquina virtual completa en un componente funcional de un sistema HPC. A través de este marco, los usuarios pueden realizar la configuración de última milla en una máquina virtual.

Además, CycleCloud proporciona las siguientes características:

  • Acceso de usuario

    CycleCloud incluye compatibilidad integrada para crear cuentas de usuario locales en cada nodo de un sistema HPC. Con este sistema, el acceso de usuario se puede controlar a través de un único plano de administración sin implementar un servicio de directorio.

  • Supervisión

    Las métricas de nivel de nodo se recopilan y muestran en la interfaz de usuario de CycleCloud. Son útiles para supervisar la carga en el sistema y se pueden enlazar a los servicios de informes y alertas.

  • Logging

    CycleCloud proporciona un sistema para registrar actividades y eventos en el nivel de nodo y servidor de aplicaciones.

  • Portabilidad

    El sistema no exige que se use una imagen de máquina virtual o un sistema operativo específicos. CycleCloud admite los principales sistemas operativos Windows y Linux en nodos HPC. Además, los usuarios pueden crear su propia imagen de máquina virtual y usarla en su sistema HPC.

  • Infraestructura como código

    Puesto que todo lo creado en CycleCloud se define en plantillas y scripts de configuración, los sistemas HPC implementados a través de CycleCloud son repetibles y portátiles. Esto proporciona coherencia de operadores en la implementación de sistemas HPC en diferentes entornos: espacio aislado, desarrollo, pruebas y producción. Los operadores también pueden implementar sistemas HPC idénticos para diferentes grupos de negocios o equipos para separar los problemas de contabilidad.

  • Cargas de trabajo acopladas o estrechamente acopladas

    Los clústeres de HPC creados por CycleCloud están diseñados no solo para admitir trabajos de acoplamiento flexible o embarazosamente paralelos en los que la escala (el tamaño del clúster) es la principal preocupación. Los clústeres de CycleCloud también están diseñados teniendo en cuenta la red troncal infiniband de Azure, que admite cargas de trabajo estrechamente acopladas o basadas en MPI en las que la proximidad del nodo y la latencia de red son críticas. Estos conceptos de escalado horizontal y estrechamente acoplado están basados en las integraciones del programador que admite CycleCloud.