O blog da AWS

Executando cargas de trabalho Windows HPC usando o HPC Pack na AWS

Por Derek Nguyen e Chris Pollard
Os clientes executam cargas de trabalho Microsoft na Amazon Web Services (AWS) há mais de 12 anos, mais do que em qualquer outro provedor de nuvem. Para alguns casos de uso de computação de alto desempenho (HPC – High Performance Computing), os clientes nos disseram que gostariam de executar simulações de HPC usando uma infraestrutura escalável da AWS que exige o sistema operacional Windows. Se você já tentou montar um cluster de HPC manualmente antes, pode ter se deparado com desafios como: documentação pouco clara, problemas de domain joins do Active Directory, desafios de topologia de rede e várias etapas entediantes durante o processo de implantação. Além disso, a HPC na nuvem geralmente é aproveitada de forma diferente da infraestrutura de HPC tradicional. Em vez de clusters de computação estáticos e de longa duração, os clusters na AWS são elásticos e geralmente são criados para executar uma simulação e depois descomissionados quando o trabalho é concluído.Para ajudar no processo de configuração de um cluster de HPC para cargas de trabalho Windows HPC, fornecemos um modelo do AWS CloudFormation que automatiza o processo de criação para implantar um cluster Windows HPC Pack 2019. Isso ajudará você a começar rapidamente a executar cargas de trabalho de HPC baseadas em Windows, aproveitando a infraestrutura altamente escalável, resiliente e segura da AWS.Para demonstrar a execução de uma carga de trabalho Windows HPC na AWS, usaremos o EnergyPlus ( https://energyplus.net/). O EnergyPlus é uma ferramenta de simulação de energia de código aberto mantida pelo Escritório de Tecnologia de Edifícios (BTO) do Departamento de Energia dos EUA (DOE) usada para modelar o consumo de energia em edifícios.Este artigo descreverá a solução, como implantá-la e como executar um exemplo de trabalho de varredura paramétrica usando o EnergyPlus.

Visão geral da solução

Essa solução permite que você instale o HPC Pack 2019 para gerenciar um cluster de servidores Windows para computação de alto desempenho. O modelo do AWS CloudFormation lançará um cluster de HPC baseado em Windows executando o Windows Server 2016 e suportando a infraestrutura principal, incluindo Amazon Virtual Private Cloud (VPC) e controladores de domínio do Active Directory usando o AWS Managed Microsoft AD. Do ponto de vista da segurança, o nó principal está público e os nós de computação permanecem privados por meio de subnets privadas. Todos os arquivos de entrada são extraídos do EnergyPlus e os arquivos de saída são enviados para o Amazon Simple Storage Service (S3). Os nós de computação interagem com o Amazon S3 por meio de um S3 Gateway Endpoint, permitindo ganhos de desempenho e eficiência de custos por meio de conectividade privada com o S3 versus roteamento de tráfego por meio de um NAT Gateway.

O AWS Secrets Manager é usado para armazenar as informações de configuração do seu cluster do HPC Pack. Isso inclui as informações necessárias para executar o domain join dos nós de computação ao Active Directory, bem como a senha para aproveitar o certificado criado. Usar o Secrets Manager para armazenar informações confidenciais permite que os nós de computação recuperem dinamicamente essas informações quando uma instância é adicionada ao cluster, mas não as mantém na instância.

O cluster criado pelo modelo do CloudFormation funciona melhor com cargas de trabalho pouco acopladas. Para cargas de trabalho com maior nível de acoplamento, a solução pode ser modificada para usar um sistema de arquivos compartilhado, como o Amazon FSx para Windows File Server e Amazon EC2 Placement Groups — uma configuração que pode ser definida para unir instâncias dentro de uma zona de disponibilidade para ajudar a alcançar o desempenho de rede de baixa latência necessário para comunicações mais acopladas entre nós.

O exemplo de trabalho de varredura paramétrica executará uma simulação nos worker nodes no cluster. Para aproveitar a escalabilidade da nuvem, a primeira etapa do trabalho de varredura paramétrica reduzirá o número de nós no cluster e a última etapa aumentará o número de nós no cluster.

Passo a passo

O passo a passo é dividido em quatro seções: pré-requisitos, implantação de artefatos, implantação do modelo AWS CloudFormation e execução de uma simulação de HPC de energia predial.

Pré-requisitos

Para este passo a passo, você deve ter os seguintes pré-requisitos:

  • Uma conta da AWS.
  • Conhecimento básico dos principais serviços da AWS — computação, rede e armazenamento.
  • Conhecimento básico a intermediário de HPC.

Clone o repositório do GitHub

A solução está hospedada no GitHub na seguinte URL: https://github.com/aws-samples/aws-cfn-windows-hpc-template.

1. Clone o repositório em sua máquina local usando o comando:

git clone https://github.com/aws-samples/aws-cfn-windows-hpc-template
Bash

Crie buckets S3

Precisamos criar dois buckets S3, um para artefatos de implantação e outro para resultados de simulação

Precisamos criar dois buckets S3, um para artefatos de implantação e outro para resultados de simulação.

  1. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3.
  2. Escolha Create bucket.
  3. Na página Create bucket:
    1. Na área Bucket Name, insira um nome exclusivo para os artefatos de implantação.
      1. Um nome como hpcpack-2019-[ID DA CONTA DA AWS] deve garantir um bucket globalmente exclusivo.
    2. Certifique-se de que a opção Block all public access na configuração de Block Public Access desse bucket esteja selecionada.
    3. Na seção Default encryption:
      1. Selecione Enable.
      2. Selecione a chave Amazon S3 (SSE-S3) como o Encryption key type.
    4. Escolha Create bucket na parte inferior da página.
  4. Depois que o bucket for criado com êxito, escolha Create bucket
  5. Na página Create bucket:
    1. Na área Bucket Name, insira um nome exclusivo para os resultados da simulação.
      1. Um nome como hpcpack-output-2019-[ID DA CONTA DA AWS] deve garantir um bucket globalmente exclusivo.
    2. Certifique-se de que a opção Block all public access  na configuração de Block Public Access desse bucket esteja selecionada.
    3. Na seção Default encryption:
      1. Selecione Enable.
      2. Selecione a chave Amazon S3 (SSE-S3) como o Encryption key type.
    4. Escolha Create Bucket na parte inferior da tela.

Faça o deploy dos artefatos

  1. Baixe o HPC Pack no site da Microsoft (https://www.microsoft.com/en-us/download/confirmation.aspx?id=101360).
  2. Renomeie o arquivo do HPC Pack baixado para HPCPack.zip.
  3. Faça upload de artefatos para o bucket (console).
    1. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3.
    2. Na seção Buckets, escolha o bucket de implantação que você criou.
    3. Escolha Upload.
    4. Escolha Add Files.
    5. Escolha o arquivo HPCPack.zip, bem como ScriptsForComputeNode2019.zip e ScriptsForHeadNode2019.zip da solução clonada.
    6. Escolha Upload e aguarde até que apareça a mensagem Upload succeeded
  1. Carregue o HPCPack.zip para o bucket (método opcional via CLI)
    1. Execute os seguintes comandos da CLI, substituindo o nome do bucket do S3 pelo nome do bucket de implantação que você escolheu anteriormente:
aws s3 cp HPCPack.zip s3://hpcpack-2019-[AWS ID DA CONTA]
aws s3 cp ScriptsForComputeNode2019.zip s3://hpcpack-2019-[AWS ID DA CONTA]
aws s3 cp ScriptsForHeadNode2019.zip s3://hpcpack-2019-[AWS ID DA CONTA]
Bash

Faça o Deploy dos CloudFormation Templates

Depois de fazermos o deploy dps nossos artefatos, precisamos fazer o deploy dos nossos CloudFormation Templates.

  1. Navegue até o console do CloudFormation em https://console.aws.amazon.com/cloudformation/home.
  2. Escolha Create Stack.
  3. Escolha o With new resources (standard)
  4. Na página Create Stack, faça o seguinte:
    1. Na seção Specify template, escolha Upload a template file
    2. Selecione o Choose File
    3. Navegue até a solução clonada do GitHub.
    4. Selecione o arquivo HPCLab2019.yml no caminho HPCLab/CloudFormation.
    5. Escolha Open.
    6. Escolha Next.
  5. Na página Especificar detalhes da stack, faça o seguinte:
    1. Na área de texto Stack Name, insira um nome para a stack do CloudFormation, ou seja, HPC-Pack-cluster.
    2. Na seção de Parameters, preencha o seguinte:
      1. O parâmetro Installation Bucket Name será o primeiro bucket criado para o qual você carregou os 3 arquivos zip.
      2. Selecione a região na qual você criou o bucket de instalação para o parâmetro Installation Bucket Region.
      3. A Remote Desktop Location deve ser seu próprio IP público na notação CIDR, ou seja, 192.168.1.1/32.
      4. Na área de texto Output Bucket Name, insira o bucket para onde os resultados da simulação devem ir. Esse deve ser o segundo bucket que você criou.
      5. Para o Scaling Notification Email, insira seu endereço de e-mail para receber notificações quando nós de computação forem adicionados.
    3. Selecione Next.

6. Na página Configure Stack Options, deixe todas as opções como padrão.
7. Escolha Next.
8. Na página de revisão, role até o final e marque a caixa de seleção que diz “I acknowledge that AWS CloudFormation might create IAM resources.”..
9. Escolha Create Stack, isso deve levar aproximadamente 50 minutos para ser concluído.

Execute um trabalho de HPC usando o EnergyPlus para analisar simulações de eficiência energética de edifícios

As etapas abaixo permitirão que você execute um trabalho de varredura paramétrica usando o programa de simulação EnergyPlus de código aberto. O EnergyPlus permite que engenheiros, arquitetos e pesquisadores modelem o consumo de energia, bem como o uso da água na construção.

O EnergyPlus será baixado no Head Node de um repositório público do GitHub (https://github.com/NREL/EnergyPlus) e depois carregado para o bucket do S3 como parte da inicialização do Head Node. Quando um nó de computação é criado, ele então baixa o artefato do seu bucket do S3 para poder executar simulações. Copiamos o EnergyPlus do GitHub para o S3 porque ele limitará a quantidade de entrada e saída de dados na Internet para cada nó de computação.

Faça login no Head Node
  1. Navegue até o console do CloudFormation em https://console.aws.amazon.com/cloudformation/.
  2. Escolha a stack HPC Pack CloudFormation que você implantou na seção anterior.
  3. Selecione Outputs
  4. Localize o campo PublicIP e salve o valor. Você precisará disso para fazer login no node principal.
  5. Navegue até o Secrets Manager em https://console.aws.amazon.com/secretsmanager/.
  6. Localize o segredo com o nome que começa com “ClusterSecrets” e selecione-o.
  7. Selecione o Retrieve Secret Value
  8. Identifique os valores HPCUserName e HPCUserPassword que você usará para fazer login no nó principal.
  9. Abra seu cliente Windows Remote Desktop Protocol (RDP) preferido.
  10. Faça login no nó principal usando o PublicIP recuperado anteriormente, com as credenciais do Secrets Manager.

Execute a simulação

As etapas a seguir devem ser executadas no nó principal.

  1. Selecione o Start Menu.
  2. Localize a pasta Microsoft (R) HPC Pack 2019 e escolha HPC Cluster Manager. Você deve ver o nó principal e os worker nodes em Resource Management. Você será capaz de fazer um RDP nos nós de computação a partir do nó principal, se quiser. Abaixo está uma captura de tela de como o HPC Cluster Manager deve ser.

3. No HPC Cluster Manager, selecione Job Management.

4. Em seguida, selecione Add job from XML na seção Actions.

5. Adicione o job definition file do seguinte local: C:\cfn\install\Parametric-Job-Prod.xml

6. Deixe todas as configurações como padrão e selecione Submit.

    1. Você pode ser solicitado a fornecer a senha de administrador do Windows. Essa é a senha que você usou no RDP do nó principal.

7. Aguarde até que o trabalho termine. Abaixo estão alguns exemplos do trabalho de varredura paramétrica concluído.

8. Navegue até o S3 em seu navegador https://console.aws.amazon.com/s3.

9. Selecione o S3 OUTPUT BUCKET que você especificou nos parâmetros de implantação do CloudFormation. Seus arquivos de saída devem estar no bucket.

10. (Opcional) Faça o download do arquivo eplustbl.htm e abra-o para ver os resultados em um navegador da Web.

Você terminou o processamento! Você também pode continuar analisando os dados no S3 usando Glue, Athena e SageMaker para análise ou aprendizado de máquina.

No futuro, você também pode clicar com o botão direito do mouse no trabalho concluído e em View Job para visualizar as tarefas executadas nos nós de computação. O HPC Pack permite que você copie e edite o trabalho com base em várias configurações de trabalho de HPC relacionadas a parâmetros, como alocação de núcleos e nós, para criação adicional de jobs.

Descomissionando o Ambiente

Na região de Ohio (us-east-2), a configuração padrão de 1 nó principal e 2 nós de computação que são instâncias m5.xlarge do Windows EC2 custará 1,128 USD por hora em custos do EC2. O AWS Directory Service para Microsoft Active Directory (Standard Edition) custará 0,12 USD por hora. Os dois gateways NAT custarão 0,09 USD por hora.

Para evitar cobranças futuras, exclua o modelo do CloudFormation e o bucket do S3 que foram criados.

Conclusão

Concluindo, a implantação de clusters de HPC baseados em Windows na AWS poderia ser simplificada com a utilização de uma infraestrutura como código. Esta postagem mostrou como automatizar a criação de um cluster de HPC e, ao mesmo tempo, permitir que você aproveite a infraestrutura escalável da AWS para executar simulações de HPC baseadas em Windows.

Comece a usar a HPC na AWS hoje mesmo usando a página de conceitos básicos do AWS HPC. Instituições sem fins lucrativos e de pesquisa podem solicitar créditos da AWS para seus casos de uso de HPC usando o Programa de Crédito para Pesquisa em Nuvem da AWS.

 

Este artigo foi traduzido do Blog da AWS em Inglês.
 


Sobre os autores

Derek Nguyen é arquiteto de soluções. 
 

 

 

 

 

Chris Pollard é arquiteto sênior de soluções na Amazon Web Services. Chris trabalha atendendo o setor público global, apoiando agências civis federais em suas jornadas na nuvem. 
 

 

 

 

Revisores

Bruno Lopes é Senior Solutions Architect no time da AWS LATAM. Trabalha com soluções de TI há mais de 15 anos, tendo em seu portfólio inúmeras experiências em workloads Microsoft, ambientes híbridos e capacitação técnica de clientes como Technical Trainer e Evangelista. Agora atua como um Arquiteto de Soluções, unindo todas as capacidades para desburocratizar a adoção das melhores tecnologias afim de ajudar os clientes em seus desafios diários.

 

 

 

 

Marcelo Baptista é Solutions Architect no time de AWS LATAM. Trabalha com soluções de TI há mais de 30 anos, com experiência em vários seguimentos de mercado e diferentes ambientes tecnológicos. Especialista em DevOps, Computing e HPC, hoje atua como Arquiteto de Soluções, apoiando os clientes nos seus desafios, buscando as melhores soluções para as suas necessidades.