O blog da AWS
Executando cargas de trabalho Windows HPC usando o HPC Pack na AWS
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:
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.
- Abra o console do Amazon S3 em https://console.thinkwithwp.com/s3.
- Escolha Create bucket.
- Na página Create bucket:
- Na área Bucket Name, insira um nome exclusivo para os artefatos de implantação.
- Um nome como
hpcpack-2019-[ID DA CONTA DA AWS]
deve garantir um bucket globalmente exclusivo.
- Um nome como
- Certifique-se de que a opção Block all public access na configuração de Block Public Access desse bucket esteja selecionada.
- Na seção Default encryption:
- Selecione Enable.
- Selecione a chave Amazon S3 (SSE-S3) como o Encryption key type.
- Escolha Create bucket na parte inferior da página.
- Na área Bucket Name, insira um nome exclusivo para os artefatos de implantação.
- Depois que o bucket for criado com êxito, escolha Create bucket
- Na página Create bucket:
- Na área Bucket Name, insira um nome exclusivo para os resultados da simulação.
- Um nome como
hpcpack-output-2019-[ID DA CONTA DA AWS]
deve garantir um bucket globalmente exclusivo.
- Um nome como
- Certifique-se de que a opção Block all public access na configuração de Block Public Access desse bucket esteja selecionada.
- Na seção Default encryption:
- Selecione Enable.
- Selecione a chave Amazon S3 (SSE-S3) como o Encryption key type.
- Escolha Create Bucket na parte inferior da tela.
- Na área Bucket Name, insira um nome exclusivo para os resultados da simulação.
Faça o deploy dos artefatos
- Baixe o HPC Pack no site da Microsoft (https://www.microsoft.com/en-us/download/confirmation.aspx?id=101360).
- Renomeie o arquivo do HPC Pack baixado para HPCPack.zip.
- Faça upload de artefatos para o bucket (console).
-
- Abra o console do Amazon S3 em https://console.thinkwithwp.com/s3.
- Na seção Buckets, escolha o bucket de implantação que você criou.
- Escolha Upload.
- Escolha Add Files.
- Escolha o arquivo HPCPack.zip, bem como ScriptsForComputeNode2019.zip e ScriptsForHeadNode2019.zip da solução clonada.
- Escolha Upload e aguarde até que apareça a mensagem Upload succeeded
- Carregue o HPCPack.zip para o bucket (método opcional via CLI)
-
- Execute os seguintes comandos da CLI, substituindo o nome do bucket do S3 pelo nome do bucket de implantação que você escolheu anteriormente:
Faça o Deploy dos CloudFormation Templates
Depois de fazermos o deploy dps nossos artefatos, precisamos fazer o deploy dos nossos CloudFormation Templates.
- Navegue até o console do CloudFormation em https://console.thinkwithwp.com/cloudformation/home.
- Escolha Create Stack.
- Escolha o With new resources (standard)
- Na página Create Stack, faça o seguinte:
- Na seção Specify template, escolha Upload a template file
- Selecione o Choose File
- Navegue até a solução clonada do GitHub.
- Selecione o arquivo HPCLab2019.yml no caminho HPCLab/CloudFormation.
- Escolha Open.
- Escolha Next.
- Na página Especificar detalhes da stack, faça o seguinte:
- Na área de texto Stack Name, insira um nome para a stack do CloudFormation, ou seja, HPC-Pack-cluster.
- Na seção de Parameters, preencha o seguinte:
- O parâmetro Installation Bucket Name será o primeiro bucket criado para o qual você carregou os 3 arquivos zip.
- Selecione a região na qual você criou o bucket de instalação para o parâmetro Installation Bucket Region.
- A Remote Desktop Location deve ser seu próprio IP público na notação CIDR, ou seja, 192.168.1.1/32.
- 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.
- Para o Scaling Notification Email, insira seu endereço de e-mail para receber notificações quando nós de computação forem adicionados.
- 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
- Navegue até o console do CloudFormation em https://console.thinkwithwp.com/cloudformation/.
- Escolha a stack HPC Pack CloudFormation que você implantou na seção anterior.
- Selecione Outputs
- Localize o campo PublicIP e salve o valor. Você precisará disso para fazer login no node principal.
- Navegue até o Secrets Manager em https://console.thinkwithwp.com/secretsmanager/.
- Localize o segredo com o nome que começa com “ClusterSecrets” e selecione-o.
- Selecione o Retrieve Secret Value
- Identifique os valores HPCUserName e HPCUserPassword que você usará para fazer login no nó principal.
- Abra seu cliente Windows Remote Desktop Protocol (RDP) preferido.
- 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.
- Selecione o Start Menu.
- 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.
-
- 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.thinkwithwp.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.
Sobre os autores
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.