A criação de laboratório automatizado permitiu a você entrar em cena rapidamente, mas, nos bastidores, descobrirá muita flexibilidade para otimizar o ambiente para diferentes casos de uso. Nesta seção, você aprenderá como aproveitar essa flexibilidade e aplicá-la para atualizar seu cluster de forma dinâmica.

Tópicos abordados
  • Software e instalação de aplicativos
  • Como escolher os tipos de instância EC2 corretos para sua carga de trabalho de HPC
  • Entenda e controle o Auto Scaling

Aplicativos de software podem ser instalados fazendo login no nó principal via SSH. O CfnCluster oferece uma variedade de pacotes de software que suportam aplicativos de HPC, incluindo openMPI, linguagens e compiladores. Há várias maneiras para você instalar seus aplicativos, dependendo das características do aplicativo e de sua preferência enquanto administrador. Um método comum pode ser instalar em /efs/apps ou /shared folders, que são montados como compartilhamentos de NFS em todos os nós.

Uma vez que seus aplicativos estão instalados (e licenciados), você pode usar o EnginFrame Service Editor para publicar para a comunidade de usuários, como você fez no primeiro capítulo deste roteiro de aprendizado.


A AWS oferece uma grande variedade de tipos de família de instâncias do EC2, gerações e dimensionamento para atender tipos de carga de trabalho muito diferentes, com preços sob demanda que variam de alguns centavos para vários USD por hora.

Para escolher um tipo de instância, comece com as necessidades específicas do aplicativo. Os aplicativos variam em seus requisitos para: número de núcleos de computação, velocidade do processador, requisitos de memória, necessidades de armazenamento, especificações de rede e custo.

Famílias são classificadas de acordo com o tipo de processador, quantidade de memória, armazenamento e conectividade de rede disponível. A família c ou a família de computação é mais frequentemente recomendada para cargas de trabalho de HPC. Os tipos de instância dentro da família geralmente têm, aproximadamente, a mesma memória para vCPU ratio. Um vCPU é um processador hyper-threaded. Normalmente, dois núcleos hyper-threaded funcionam como um núcleo físico. Dentro de cada família, pode haver múltiplas gerações. Por exemplo, a família c de tipos de instâncias inclui as instâncias c3 e c4. O número adicionado indica a geração do tipo de instância.

A instância c4.8xlarge (haswell) é bastante popular para aplicativos HPC paralelos. Ela tem ~ 60GiB de memória e 18 núcleos. Cada família vem em vários tamanhos. Por exemplo, uma instância de computação de metade do tamanho do c4.8xlarge é o c4.4xlarge. O preço por hora também é aproximadamente metade.

Uma instância pode ser interrompida a qualquer momento e reiniciada com um tipo de instância diferente. Esse recurso ajuda você a escolher o tipo de instância ideal para cargas de trabalho de HPC.

Outros tipos de instância populares para cargas de trabalho de HPC são detalhadas na tabela abaixo:

Tipo de instância

vCPU

Memória

(GiB)

 Armazenamento

(GB)

Performance de redes

Processador físico

Velocidade de clock (GHz)

EBS

Opt

c4.8xlarge

36

60

Somente EBS

10 Gigabit

Intel Xeon E5-2666 v3

2,9

Sim

c3.8xlarge

32

60

2 x 320 SSD

10 Gigabit

Intel Xeon E5-2680 v2

2,8

Não

m4.10xlarge

40

160

Somente EBS

10 Gigabit

Intel Xeon E5-2676 v3

2.4

Sim

m4.16xlarge

64

256

Somente EBS

20 Gigabits

Intel Xeon E5-2686 v4

2.3

Sim

p2.16xlarge

64

732

Somente EBS

20 Gigabits

Intel Xeon E5-2686 v4

2.3

Sim

x1.32xlarge

128

1.952

2 x 1.920 SSD

20 Gigabits

Intel Xeon E7-8880 v3

2.3

Sim

r3.8xlarge

32

244

2 x 320 SSD

10 Gigabit

Intel Xeon E5-2670 v2

2,5

Não

Para ver uma lista de todos os tipos de instância disponíveis, consulte Amazon EC2 instance types. Assim que você identificar o tipo de instância correto para sua carga de trabalho, verifique a diferença entre o preço de instâncias sob demanda e de instâncias spot atuais. Se o tipo de carga de trabalho que você tem pode lidar facilmente com a recuperação potencial das instâncias, o uso da instância Spot geralmente pode ser uma maneira muito eficaz de reduzir o orçamento de HPC.

Se você deseja modificar as características do seu cluster, uma maneira fácil de fazer isso dinamicamente é usar o recurso "Update Stack" oferecidos no console do CloudFormation. Lembre-se de que algumas alterações podem temporariamente interromper a funcionalidade do cluster. A menos que você se sinta confortável com as consequências, reconfigure seus parâmetros de pilha somente quando não há carga de trabalho no cluster.

Experimente esse recurso na DefaultCluster Stack seguindo as instruções abaixo:

  • Instruções: alterando o tipo de instância no cluster atual

    1. Abra o console do CloudFormation clicando aqui.
    2. Clique com o botão direito do mouse em EnginFrame-DefaultCluster-##yourValues##. Selecione Update Stack.
    3. Selecione Use current template e selecione Next.
      • Observação: ao selecionar Use current template, o assistente do CloudFormation oferecerá a capacidade de modificar um maior número de parâmetros em comparação com a pilha principal, oferecendo a você acesso à mais ampla flexibilidade do CfnCluster.
    4. Faça as seguintes edições para a configuração:
      • compute_instance_type: selecione o tipo de instância de sua escolha para atualizar seus nós de computação.
      • cluster_type: edite a seleção para instância spot. Em seguida, defina um spot_price para um valor que você está confortável com base no preço atual de mercado.
    5. Selecione Next.
    6. Siga as próximas etapas do assistente até que você veja uma pré-visualização das alterações e confirmar selecionando Update para atualizar sua pilha. Dependendo das alterações efetuadas, a atualização pode levar vários minutos para propagar.

O Auto Scaling é um recurso do Amazon EC2 que ajuda a manter a disponibilidade do aplicativo e permite aumentar ou reduzir a capacidade do EC2 de forma automática, de acordo com as condições definidas por você. Você pode usar o Auto Scaling para ajudar a garantir que está executando o número desejado de instâncias do Amazon EC2. 

O tamanho do cluster neste laboratório é continuamente monitorado e alterado pelo recurso Auto Scaling do EC2. Se você souber o tamanho do cluster ideal para a sua carga de trabalho (por exemplo, com um trabalho de MPI de vários nós), pode ser mais rápido e mais eficiente pré-provisionar o número correto de nós, em vez de permitir que o cluster cresça de forma gradual.

Você pode configurar o tamanho do cluster de Auto Scaling seguindo as instruções abaixo:

  • Instruções: altere os parâmetros do Auto Scaling em seu cluster

    1. Abra o console do grupo Auto Scaling do Amazon EC2 clicando aqui.
    2. Você verá que o Default Cluster criou um grupo de Auto Scaling para a frota de computação. O console fornece informações sobre o número atual de instâncias no grupo, os limites mínimo e máximo e o número desejado de instâncias. 
    3. O número desejado de instâncias é automaticamente influenciado pelas Scaling Policies ativas no cluster, mas você também pode alterar seu valor manualmente. Para alterar o tamanho desejado ou outros parâmetros de Auto Scaling, clique com o botão direito no grupo Auto Scaling e selecione Edit.
    4. O painel inferior será atualizado com os detalhes do Auto Scaling. Você pode editar o número de Load Balancers, instâncias desejadas, o número mínimo e máximo de instâncias (nós) e muito mais. Ao concluir, selecione Save.
      • Observação: se o número desejado de instâncias é diferente do número atual de instâncias, o CloudFormation criará ou removerá instâncias para alcançar o número desejado.

    (clique para aumentar)