Blog de Amazon Web Services (AWS)

Ejecución de cargas de trabajo Windows HPC usando HPC Pack en AWS

Por Derek Nguyen e Chris Pollard
Los clientes han estado ejecutando cargas de trabajo de Microsoft en Amazon Web Services (AWS) durante más de 12 años, más que cualquier otro proveedor de nube. Para algunos casos de uso de cómputo de alto rendimiento (HPC), los clientes nos han dicho que les gustaría ejecutar simulaciones de HPC utilizando infraestructura de AWS escalable que requiera el sistema operativo Windows. Si ha intentado montar un clúster HPC manualmente antes, es posible que haya encontrado desafíos como: documentación poco clara, problemas de unión a dominio de Active Directory, desafíos de topología de red y varios pasos tediosos durante el proceso de implementación. Además, HPC en la nube a menudo se aprovecha de manera diferente a la infraestructura HPC tradicional. En lugar de clústeres de cómputo estáticos y de larga ejecución, los clústeres de AWS son elásticos y, por lo general, se crean para ejecutar una simulación y luego se desmontan cuando se completa el trabajo.Para ayudar con el proceso de configuración de un clúster de HPC para cargas de trabajo Windows HPC, proporcionamos una plantilla de AWS CloudFormation que automatiza el proceso de creación para implementar un clúster de Windows HPC Pack 2019. Esto le ayudará a comenzar rápidamente a ejecutar cargas de trabajo HPC basadas en Windows, aprovechando la infraestructura altamente escalable, resiliente y segura de AWS.Con el fin de demostrar la ejecución de una carga de trabajo Windows HPC en AWS, utilizaremos EnergyPlus ( https://energyplus.net/). EnergyPlus es una herramienta de simulación de energía de código abierto mantenida por el Departamento de Energía de los Estados Unidos (DOE) Oficina de Tecnología de Construcción (BTO) que es utilizado para modelar el consumo energético en edificios.En este artículo se describe la solución, cómo implementarla y cómo ejecutar un trabajo de análisis paramétrico de ejemplo con EnergyPlus.

 

Descripción general de la solución

Esta solución le permite instalar el HPC Pack 2019 para administrar un clúster de servidores Windows para computo de alto rendimiento. La plantilla de AWS CloudFormation desplegara un clúster de HPC basado en Windows que ejecuta Windows Server 2016 y admite los principales servicios de infrastructura, incluidos Amazon Virtual Private Cloud (VPC) y los controladores de dominio de Active Directory que utilizan AWS Managed Microsoft AD. Desde el punto de vista de la seguridad, el nodo principal es público y los nodos de cómputo permanecen privados a través de subredes privadas. Todos los archivos de entrada se extraen de EnergyPlus y los archivos de salida se envían a Amazon Simple Storage Service (S3). Los nodos de cómputo interactúan con Amazon S3 a través de un S3 Gateway Endpoint, lo que permite aumentar el rendimiento y la rentabilidad a través de la conectividad privada a S3 en lugar de enrutar el tráfico a través de un NAT Gateway.

AWS Secrets Manager es utilizado para almacenar la información de configuración del clúster de HPC Pack. Esto incluye información necesaria para unir los nodos de cómputo a Active Directory, así como la contraseña para aprovechar el certificado que es creado. El uso de Secrets Manager para almacenar información confidencial permite a los nodos de cómputo obtener de manera dinámica esa información cuando se agrega una instancia al clúster, pero no la mantiene en la instancia.

El clúster creado por la plantilla de CloudFormation funciona mejor con cargas de trabajo de acoplamiento flexible. Para cargas de trabajo con un mayor nivel de acoplamiento, la solución se puede modificar para utilizar un sistema de archivos compartido, como Amazon FSx for Windows File Server y Amazon EC2 Placement Groups, — una configuración que se puede establecer para mantener juntas ciertas instancias dentro de una zona de disponibilidad, para ayudar a lograr el rendimiento de red de baja latencia requerido para comunicaciones más acopladas entre nodos.

El trabajo de análisis paramétrico de ejemplo, ejecutará una simulación en los nodos de trabajo del clúster. Para aprovechar la escalabilidad de la nube, el primer paso del trabajo de análisis paramétrico aumentará el número de nodos en el clúster y el último paso reducirá el número de nodos en el clúster.

Paso a paso

El paso a paso se divide en cuatro secciones: pre-requisitos, implementación de artefactos, implementación de la platilla de AWS CloudFormation y ejecución de una simulación de HPC building energy.

Pre-requisitos

Para este paso a paso, deben tener los siguientes pre-requisitos:

  • Una cuenta de AWS.
  • Conocimientos básicos de los servicios principales de AWS: cómputo, redes y almacenamiento.
  •  Conocimientos básicos a intermedios de HPC.

Clonar el repositorio de GitHub

La solución está hospedada en GitHub en la siguiente URL: https://github.com/aws-samples/aws-cfn-windows-hpc-template.

  1. Clone el repositorio en su máquina local usando el comando:
git clone https://github.com/aws-samples/aws-cfn-windows-hpc-template
Bash

Crear buckets de S3

Necesitamos crear dos buckets de S3, uno para la implementación de los artefactos y otro para los resultados de la simulación.

1. Abra la consola de Amazon S3 con https://console.thinkwithwp.com/s3.

2. Elija Create bucket.

3. En la página Create bucket:

a. En el área Bucket Name, escriba un nombre único para implementar los artefactos.

I. Un nombre como hpcpack-2019-[AWS ACCOUNT ID] debe garantizar un bucket único a nivel mundial.

b. Asegúrese de que la opción Block all public access esta seleccionada en la configuración de Block Public Access.

c. En la sección Default Encryption:

I. Seleccione Enable.

II. Seleccione Amazon S3 key (SSE-S3)como el Encryption key type.

d. Elija Create bucket en la parte inferior de la página.

4. Una vez que el bucket se haya creado correctamente, elija Create bucket

5. En la página Crear bucket:

a. En el área Bucket Name, introduzca un nombre único para los resultados de la simulación.

I. Un nombre como hpcpack-output-2019-[AWS ACCOUNT ID] debe garantizar un bucket único a nivel mundial.

b. Asegúrese de que la opción Block all public access esta seleccionada en la configuración de Block Public Access.

c. En la sección Default Encryption:

I. Seleccione Enable.

II. Seleccione Amazon S3 key (SSE-S3)como el Encryption key type.

d. Elija Create bucket en la parte inferior de la página.

Implementar artefactos

1. Descargue el HPC Pack desde el sitio web de Microsoft (https://www.microsoft.com/en-us/download/confirmation.aspx?id=101360).

2. Cambie el nombre del archivo HPC Pack descargado a HPCPack.zip.

3. Cargue artefactos en el bucket (consola).

a. Abra la consola de Amazon S3 con https://console.thinkwithwp.com/s3.

b. En la sección Buckets, elija el bucket de implementación creado anteriormente.

c. Elija Upload.

d. Elija Add Files.

e. Elija el archivo HPCPack.zip, así como ScriptsForComputeNode2019.zip y ScriptsForHeadNode2019.zip de la solución clonada.

f. Elija Upload y espere a que aparezca el mensaje Upload succeeded

4. Cargue HPCPack.zip en el bucket (método opcional a través de CLI)

a. Ejecute los siguientes comandos CLI, reemplazando el nombre del bucket de S3 por el nombre del bucket de implementación que eligió anteriormente:

aws s3 cp HPCPack.zip s3://hpcpack-2019-[AWS ID DA CONTA]
aws s3 cp ScriptsForComputeNode2019.zip s3://hpcpack-2019-[AWS ACCOUNT ID]
aws s3 cp ScriptsForHeadNode2019.zip s3://hpcpack-2019-[AWS ACCOUNT ID]
Bash

Implementación de  plantillas de CloudFormation

Después de implementar los artefactos, debemos implementar las plantillas de CloudFormation.

  1. Vaya a la consola de CloudFormation con https://console.thinkwithwp.com/cloudformation/home.
  2. Elija Create Stack.
  3. Elija With new resources (standard).
  4. En la página Create stack, haga lo siguiente:

a. En la sección Specify template, elija Upload a template file.

b. Seleccione Choose file.

c. Navegue hasta la solución clonada de GitHub.

d. Seleccione el archivo HPCLab2019.yml en la ruta de HPCLab/CloudFormation.

e. Elija Open.

f. Elija Next.

5. En la página Specify stack details, haga lo siguiente:

a. En el área de texto Stack name, escriba un nombre para la pila de CloudFormation, es decir, HPC-Pack-Cluster.

b. En la sección parameters, realice lo siguiente:

I. El parámetro Installation Bucket Name será el primer bucket creado en el que cargó los 3 archivos zip.

II. Seleccione la región en la que creó el bucket de instalación para el parámetro de instalación Bucket Region.

II. Para el campo Remote Desktop Location, utilice su propia dirección IP pública en notación CIDR, es decir, 192.168.1.1/32.

IV. En el área de texto Output Bucket Name, introduzca el bucket donde deben ir los resultados de la simulación. Este debería ser el segundo bucket creado anteriormente.

V. En Scaling Notification Email, escriba su dirección de correo electrónico para recibir notificaciones cuando se agreguen nodos de proceso.

c. Seleccione Next.

6. En la página Configure Stack Options, deje todas las opciones predeterminadas.

7. Elija Next.

8. En la página de revisión, desplácese hasta la parte inferior y seleccione la casilla de verificación que dice «I acknowledge that AWS CloudFormation might create IAM resources«.

9. Elija Create Stack, esto debería tardar aproximadamente 50 minutos en completarse.

Ejecute un trabajo de HPC con EnergyPlus para analizar simulaciones de eficiencia energética de edificios

Los pasos siguientes le permitirán realizar un trabajo de análisis paramétrico utilizando el programa de simulación de código abierto EnergyPlus. EnergyPlus permite a los ingenieros, arquitectos e investigadores a modelar el consumo de energía, así como el uso del agua en la construcción.

EnergyPlus se descargará en el nodo principal de un repositorio público de GitHub (https://github.com/NREL/EnergyPlus) y luego se cargará en el bucket de S3 como parte del inicio del nodo principal. Cuando se crea un nodo de cómputo, se descargará el artefacto de su bucket de S3 para que pueda ejecutar simulaciones. Copiamos EnergyPlus de GitHub a S3 porque esto limitará la cantidad de entrada y salida de datos a Internet para cada nodo de cómputo.

Inicie sesión en el nodo principal

  1. Vaya a la consola de CloudFormation con https://console.thinkwithwp.com/cloudformation/.
  2. Elija el stack de  CloudFormation de HPC Pack que implementó en la sección anterior.
  3. Elija Outputs
  4. Localice el campo PublicIP y guarde el valor. Lo necesitará esto para iniciar sesión en el nodo principal.
  5. Vaya a Secrets Manager con https://console.thinkwithwp.com/secretsmanager/.
  6. Localice el secreto con el nombre que comienza por «ClusterSecrets» y selecciónelo.
  7. Seleccione Retrieve Secret Value
  8. Identifique los valores HPCUserName y HPCUserPassword que se usaran para iniciar sesión en el nodo principal.
  9. Abra el cliente de Remote Desktop Protocol (RDP) de Windows de su preferencia.
  10. Inicie sesión en el nodo principal utilizando la dirección de PublicIP, con las credenciales almacenadas previamente en Secrets Manager.

Ejecute la simulación

Los siguientes pasos deben realizarse en el nodo principal.

  1. Seleccione Start Menu.
  2. Busque la carpeta Microsoft (R) HPC Pack 2019 y elija HPC Cluster Manager. Debería ver el nodo principal y los nodos de trabajo en Resource Management. Es posible conectarse a través de RDP a los nodos de cómputo desde el nodo maestro si lo desea. A continuación, se muestra una captura de pantalla de cómo debería lucir el HPC Cluster Manager.

3.En HPC Cluster Manager, seleccioné Job Management.

4. A continuación, seleccione New Job from XML File en la sección Actions.

5. Agregue el archivo de definición de trabajo desde la siguiente ubicación: : C:\cfn\install\Parametric-Job-Prod.xml

6. Deje todas las configuraciones predeterminadas y seleccione Submit.

a. Es posible que se le pida la contraseña de administrador de Windows. Esta es la contraseña que utilizó para conectarse a través de RDP al nodo principal.

7. Espere a que termine el trabajo. A continuación, se muestran algunos ejemplos del trabajo de análisis paramétrico completado.

8. Vaya a S3 en su navegador https://console.thinkwithwp.com/s3.

9. Seleccione S3 OUTPUT BUCKET que especificó en los parámetros de implementación de CloudFormation. Los archivos de salida deben estar en el bucket.

10. (Opcional) Descargue el archivo eplustbl.htm y ábralo para ver los resultados en un navegador web.

¡Has terminado de procesar! También puede seguir analizando los datos en S3 con Glue, Athena y SageMaker para el análisis o el aprendizaje automático.

En el futuro, también puede hacer clic con el botón secundario en el trabajo completado y puede seleccionar View Job para ver las tareas realizadas en los nodos de cómputo. HPC Pack le permite copiar y editar el trabajo en función de varias configuraciones de trabajo HPC relacionadas con parámetros, como la asignación de núcleos y nodos, para la creación de trabajos adicionales.

Descomissionando o AmbienteElimine recursos

En la región Ohio (us-east-2), la configuración predeterminada de 1 nodo principal y 2 nodos de cómputo que son instancias EC2 Windows m5.xlarge costarán $1.128 USD por hora en costos de EC2. AWS Directory Service para Microsoft Active Directory (Standard Edition) costará $0.12 USD por hora. Los dos NAT Gateways costarán $0.09 USD por hora.

Para evitar cargos futuros, elimine la plantilla de CloudFormation y el bucket de S3 que se crearon.

 

Conclusión

En conclusión, la implementación de clústeres HPC basados en Windows en AWS podría simplificarse mediante el uso de infraestructura como código. En esta publicación se muestra cómo automatizar la creación de un clúster de HPC y al mismo tiempo aprovechar la infraestructura escalable de AWS para ejecutar simulaciones de HPC basadas en Windows.

Comience a utilizar HPC en AWS hoy mismo con AWS HPC Getting Started . Las instituciones sin fines de lucro y de investigación pueden solicitar créditos de AWS para sus casos de uso de HPC mediante el programa AWS Cloud Credit for Research.

 

Este artículo fue traducido del Blog de AWS en Inglés. Blog da AWS em Inglês.
 


Acerca de los autores

Derek Nguyen es arquitecto de soluções. 
 

 

 

 

 

Chris Pollard es un arquitecto de soluciones en Amazon Web Services. Chris trabaja sirviendo al sector público global, apoyando a las Agencias Civiles Federales en su jornada de migración hacia la nube.
 

 

 

 

Revisores

Daniel Maldonado es un arquitecto de soluciones de AWS, especialista en cargas de trabajo de Microsoft y tecnologías de Big Data, dedicado a ayudar a los clientes a migrar sus aplicaciones y datos a AWS. Daniel tiene más de 14 años de experiencia trabajando con Tecnologías de la Información y disfruta ayudando a los clientes a cosechar los beneficios de ejecutar sus cargas de trabajo en la nube.

 

 

 

 

JuanMa Silva quien es arquitecto de soluciones con especialidad en Microsoft para México y MCO. Cuenta con 15 años de experiencia en la industria de IT, en posiciones de Sysadmin, consultor para ayudar a migrar clientes a la nube y modernización de aplicaciones, soporte aplicaciones de misión crítica basados en tecnología Microsoft.