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.
- 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:
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: