Blog de Amazon Web Services (AWS)

Conociendo AWS Parallel Cluster Service (AWS PCS): Simplificando el Cómputo del Alto Desempeño en la Nube

Por José Lorenzo Cuéncar, Arquitecto de Soluciones Senior en Amazon Web Services para el Sector Público.

AWS Parallel Computing Service (AWS PCS) es un nuevo servicio gestionado que facilita la configuración y administración de clústeres de cómputo de alto desempeño (High Performance Compute, HPC) en la nube de Amazon. Esta solución permite a los usuarios ejecutar simulaciones a gran escala de manera fluida, aprovechando la potencia y flexibilidad de AWS.

Basado en el planificador Slurm (Simple Linux Utility for Resource Management) ampliamente utilizado en entornos HPC, AWS PCS ofrece un ambiente familiar. Esto permite que sus usuarios (científicos, investigadores e ingenieros) se concentren en la investigación y la innovación permitiéndoles ejecutar sus aplicaciones y trabajos en un entorno familiar sin preocuparse por la gestión de la infraestructura subyacente, ya sea utilizando la consola de administración de AWS, el AWS SDK o la interfaz de línea de comandos de AWS (CLI)

En AWS PCS, un cluster tiene 1 o más colas de trabajo asociadas a al menos 1 grupo de nodos de cómputo. Utilizando comandos de Slurm, enviaremos trabajos a las colas y estos se ejecutarán en instancias EC2 definidas en los grupos de nodos de cómputo asociado.

Aquí algunos puntos clave sobre AWS Parallel Computing Service (AWS PCS):

  • Clúster: Administra recursos como cómputo, red (Amazon VPC) y almacenamiento para ejecutar trabajos HPC utilizando Slurm como programador de trabajos y configura instancias EC2 para aceptar, calendarizar y procesar estos trabajos.
  • Grupo de nodos de cómputo: Conjunto de instancias EC2 definidas para ejecutar trabajos, con configuraciones específicas como tipos de instancias, instancias mínimas y máximas, configuración de red (VPC y subredes), Amazon Machine Image (AMI), opción de compra (Bajo demanda o spot) y configuraciones de lanzamiento.
  • Colas: Los trabajos se envían a colas específicas, hasta que AWS PCS los ejecuta en el(los) grupo(s) de nodos de cómputo correspondiente(s).
  • Administrador del sistema: Un administrador de sistemas es el responsable de la operación y mantenimiento del clúster. AWS PCS puede ser accedido por la consola de administración de AWS, por API y por el SDK de AWS, además que se puede acceder al cluster por via SSH ó por AWS Systems Manager.

Al final del día, los usuarios finales ejecutan trabajos, gestionan datos y acceden a los recursos del cluster por medio de terminal sin necesidad de administrar el mismo.

Disponibilidad Regional y Precios

AWS PCS está disponible en múltiples regiones, incluyendo EE.UU. Este (Norte de Virginia y Ohio), Asia Pacífico (Singapur, Sidney y Tokio), y Europa (Frankfurt, Irlanda y Estocolmo). En cuanto a precios, visita la siguiente página para conocer en detalle las tarifas asociadas a la administración y control de los nodos.

Manos a la obra

Ahora bien, dado que ya hemos hablado del servicio AWS ParallelCluster Service (PCS), comencemos ejecutando un ejemplo práctico:

1. Configurar los artefactos que utilizaremos en AWS PCS:

Seguiremos esta guía para prepararnos para crear nuestro primer cluster en AWS PCS. Para esto utiliza este tutorial para crear un cluster simple, el cual se encuentra en la documentación de AWS. Primero, debes crear una Amazon VPC usando la plantilla de AWS CloudFormation y un almacenamiento compartido utilizando Amazon Elastic File System (Amazon EFS) dentro de su cuenta para la región de AWS donde probarás AWS PCS. En nuestro ejemplo utilizaremos Ohio (us-east-2).

Utilizaremos un ejercicio basado en la Predicción Numérica del Tiempo (Numerical Weather Prediction, NWP), y para esto, nos basaremos en un taller de NWP en AWS, donde se explica cómo ejecutar un ejemplo de procesamiento utilizando el modelo Weather Research and Forecasting (WRF) para un modelo de 12 kilómetros de Estados Unidos Continentales (CONUS). Este taller proporciona los pasos necesarios para configurar, ejecutar la predicción climática y visualizar los resultados. Este flujo nos permitirá realizar la predicción climática y aprovechar la infraestructura de alto rendimiento disponible en la nube de AWS.

2. Crear un cluster en su consola de AWS.

Dentro de su consola, ve a la consola de AWS PCS, selecciona Crear clúster, un recurso persistente para gestionar recursos y ejecutar cargas de trabajo.

A continuación, ingresa el nombre de tu cluster y elige el tamaño del controlador de tu planificador Slurm. Puedes elegir entre Small (hasta 32 nodos y 256 trabajos), Medium (hasta 512 nodos y 8,192 trabajos), ó Large (hasta 2,048 nodos y 16,384 trabajos) según los límites de carga de trabajo del cluster. En la sección de Redes, selecciona tu VPC creada, la subred para lanzar el cluster y el grupo de seguridad aplicado a tu cluster.

Opcionalmente, puedes realizar ajustes de configuracion especificos de Slurm, por ejemplo, el tiempo de inactividad antes de que los nodos de cómputo se reduzcan, un directorio de scripts Prolog y Epilog en los nodos de cómputo lanzados, y un parámetro de algoritmo de selección de recursos utilizado por Slurm.

Selecciona Crear cluster. Esto tomará algún tiempo para que el cluster se aprovisione.

3. Crear grupos de nodos de cómputo

Después de crear tu cluster, puedes crear grupos de nodos de cómputo, una colección virtual de instancias de Amazon Elastic Compute Cloud (Amazon EC2) que AWS PCS utiliza para proporcionar acceso interactivo a un cluster ó ejecutar trabajos en un cluster.

Cuando defines un grupo de nodos de cómputo, especificas características comunes como tipos de instancia de EC2, número mínimo y máximo de instancias, subredes objetivo de la VPC, imagen de máquina de Amazon (AMI), opción de compra y configuración de lanzamiento personalizada. Los grupos de nodos de cómputo requieren un perfil de instancia para pasar un rol de AWS Identity and Access Management (IAM) a una instancia de EC2 y una plantilla de lanzamiento de EC2 que AWS PCS usa para configurar las instancias de EC2 que lanza.

Para crear un grupo de nodos de cómputo en la consola, ve al clúster y elige la pestaña Grupos de nodos de cómputo y el botón Crear grupo de nodos de cómputo.

Puedes crear dos grupos de nodos de cómputo: un grupo de nodos de inicio de sesión para que los usuarios finales accedan y un grupo de nodos de trabajo para ejecutar trabajos de HPC.

Para crear un grupo de nodos de cómputo que ejecute trabajos de HPC, ingresaun nombre de nodo de cómputo y seleccione una plantilla de lanzamiento de EC2 creada previamente, un perfil de instancia de IAM y subredes para lanzar nodos de cómputo en su VPC de clúster.

A continuación, elige los tipos de instancia de EC2 que prefieras usar al lanzar nodos de cómputo y la cantidad mínima y máxima de instancias para escalar. Elegiremos el tipo de instancia hpc7a.48xlarge y el límite de escala hasta ocho instancias. Para un nodo de inicio de sesión, puedes elegir una instancia más pequeña, como una instancia c7a.xlarge. También puede elegir la opción de compra de EC2 bajo demanda ó Spot si el tipo de instancia lo admite. Opcionalmente, puede elegir una AMI específica.

Las instancias Hpc7a están diseñadas para ejecutar cargas de trabajo de HPC estrechamente acopladas, como dinámica de fluidos computacional (CFD), pronóstico del tiempo y simulaciones multifísicas con un mejor rendimiento.

Selecciona Crear. El grupo de nodos de cómputo tarda un tiempo en aprovisionarse.

Para obtener más información, visita Crear un grupo de nodos de cómputo para ejecutar trabajos y Crear un grupo de nodos de cómputo para nodos de inicio de sesión en la documentación de AWS.

4. Crear y ejecutar tus trabajos de HPC

Después de crear tus grupos de nodos de cómputo, puedes enviar un trabajo a una cola para ejecutarlo. El trabajo permanece en la cola hasta que AWS PCS lo programa para ejecutarse en un grupo de nodos de cómputo, basado en la capacidad aprovisionada disponible. Cada cola está asociada con uno o más grupos de nodos de cómputo, que proporcionan las instancias de EC2 necesarias para el procesamiento.

Para crear una cola en la consola, selecciona su clúster y elija la pestaña Colas y presiona el botón Crear cola.

Escribe el nombre de la cola y elige los grupos de nodos de cómputo asignados a tu cola.

Selecciona Crear y espera mientras se crea la cola.

Cuando el grupo de nodos de cómputo de inicio de sesión está activo, puedes usar AWS Systems Manager para conectarse a la instancia EC2 que creó. Ve a la consola de Amazon EC2 y elige su instancia EC2 del grupo de nodos de cómputo de inicio de sesión. Para obtener más información, visita Crear una cola para enviar y administrar trabajos y Conectarse a su clúster en la documentación de AWS.

Para ejecutar un trabajo con Slurm, se prepara un script de envío que especifica los requisitos del trabajo y se envía a una cola con el comando sbatch. Normalmente, esto se hace desde un directorio compartido, de modo que los nodos de inicio de sesión y de cómputo tengan un espacio común para acceder a los archivos.

En este caso, utilizamos una cola de trabajo asociada al grupo de nodos de cómputo para nodos de inicio de sesión, puesto que esta ejecucíon de prueba solo se hará en la misma instancia y el resultado se alojará en el mismo disco. Si vemos el ejemplo, creamos un archivo bash para ejecutar un trabajo simple de Slurm, y el resultado lo tendremos en un archivo .out. En la imagen podrá seguir los pasos de:

  • La creación del archivo.
  • La ejecución del mismo utilizando sbatch y enviandolo a la cola previamente mencionada
  • La revisión de la cola con el comando squeue
  • La visualización del archivo de salida

Para poder visualizar los resultados de nuestra ejecución, Puede conectar un escritorio remoto NICE DCV completamente administrado para visualización. Para comenzar, utilice la plantilla CloudFormation del repositorio de GitHub de HPC Recipes para AWS.

Limpieza de Recursos

Una vez que haya terminado los trabajos de HPC con el clúster y los grupos de nodos que creó, elimine los recursos que creó para evitar cargos innecesarios. Para obtener más información, visite Eliminar sus recursos de AWS en la documentación de AWS.

AWS Parallel Cluster Service representa un hito importante en la democratización de HPC. Ya sea que esté realizando simulaciones científicas complejas, renderizado 3D o análisis de big data, AWS PCS ofrece la plataforma robusta y flexible que necesita para impulsar la innovación y la investigación en su campo.Descubra cómo AWS PCS puede transformar sus capacidades de HPC

Autor

José Lorenzo Cuéncar Garza José Lorenzo Cuéncar ha trabajado en empresas de consultoría, construcción ,logística, así como startups de comercialización de bienes y servicios, apoyando en la adopción de tecnologías en la nube. Actualmente se desempeña como Arquitecto de Soluciones Senior en Amazon Web Services para el Sector Público en México donde se especializa en Cómputo y Computo de Alto desempeño, apoya a la transformación digital en México de organismos de educación pública y privada, tanto como a gobiernos federales, estatales y locales.