La creazione di un lab automatizzato ti ha reso operativo il più velocemente possibile, ma nel backstage potrai scoprire una notevole flessibilità per ottimizzare l'ambiente nei diversi casi d'uso. Questa sezione illustra come trarre vantaggio da questa flessibilità e applicarla per aggiornare il cluster in modo dinamico.
- Installazione di software e applicazioni
- Come scegliere il giusto tipo di istanza EC2 per il tuo carico di lavoro HPC
- Capire e controllare l'Auto Scaling
Le applicazioni software possono essere installate per accedere al nodo principale tramite SSH. CfnCluster offre un'ampia gamma di pacchetti software che supportano applicazioni HPC, tra cui openMPI, linguaggi e compilatori. Ci sono diversi modi in cui è possibile installare le proprie applicazioni, a seconda delle caratteristiche delle applicazioni e le tue preferenze come amministratore. Un metodo comune può essere installarle in /efs/apps o/cartelle condivise, montate come condivisioni NFS su tutti i nodi.
Una volta che le applicazioni vengono installate (e concesse), è possibile utilizzare EnginFrame Service Editor per pubblicarle nella comunità di utenti, come nel primo capitolo di questo percorso di apprendimento.
AWS offre un'ampia gamma di tipi di famiglia di istanze EC2, generazioni e dimensionamento per servire tipi di carichi di lavoro molto diversi, con prezzi on demand che variano da pochi centesimi a diversi dollari all'ora.
Per scegliere un tipo di istanza, inizia con le esigenze specifiche dell'applicazione. Le applicazioni variano nei loro requisiti per: numero di core di elaborazione, velocità del processore, i requisiti di memoria, esigenze di storage, reti specifiche e costi.
Le famiglie sono classificate in base al tipo di processore, quantità di memoria, storage e connettività di rete disponibile. La famiglia c o la famiglia "calcolo" la più raccomandata per i carichi di lavoro HPC. I tipi di istanze all'interno della famiglia di solito hanno, circa, le stesse proporzioni di memoria per vCPU. Un vCPU è un processore hyper-thread. Di solito, due hyper-thread core funzionano come un core fisico. All'interno di ogni famiglia non ci possono essere più generazioni. Ad esempio, la famiglia c di tipi di istanze include le istanze c3 e c4. Il numero aggiunto indica la generazione del tipo di istanza.
L'istanza c4.8xlarge (haswell) è molto popolare per le applicazioni HPC parallele. Ha ~ 60°GiB di memoria e 18 core. Ogni famiglia è disponibile in più dimensioni. Ad esempio, un'istanza di calcolo grande la metà del c4.8xlarge è il c4.4xlarge. La tariffa oraria è di circa la metà.
Un'istanza può essere interrotta in qualsiasi momento e riavviata con un altro tipo di istanza. Questa capacità consente di scegliere il tipo di istanza ottimale per i carichi di lavoro HPC.
Altri popolari tipi di istanza per i carichi di lavoro HPC sono descritti dettagliatamente nel grafico seguente:
Tipo di istanza |
vCPU |
Memoria (GiB) |
Storage (GB) |
Prestazioni di rete |
Processore fisico |
Velocità clock (GHz) |
EBS Opt |
c4.8xlarge |
36 |
60 |
Solo EBS |
10 Gigabit |
Intel Xeon E5-2666 v3 |
2,9 |
Sì |
c3.8xlarge |
32 |
60 |
2 x 320 SSD |
10 Gigabit |
Intel Xeon E5-2680 v2 |
2,8 |
No |
m4.10xlarge |
40 |
160 |
Solo EBS |
10 Gigabit |
Intel Xeon E5-2676 v3 |
2,4 |
Sì |
m4.16xlarge |
64 |
256 |
Solo EBS |
20 Gigabit |
Intel Xeon E5-2686 v4 |
2,3 |
Sì |
p2.16xlarge |
64 |
732 |
Solo EBS |
20 Gigabit |
Intel Xeon E5-2686 v4 |
2,3 |
Sì |
x1.32xlarge |
128 |
1.952 |
2 x 1.920 SSD |
20 Gigabit |
Intel Xeon E7-8880 v3 |
2,3 |
Sì |
r3.8xlarge |
32 |
244 |
2 x 320 SSD |
10 Gigabit |
Intel Xeon E5-2670 v2 |
2,5 |
No |
Per vedere un elenco di tutti i tipi di istanze disponibili, consulta Tipi di istanze di Amazon EC2. Una volta identificato il tipo di istanza per il carico di lavoro, controlla la differenza tra i prezzi Spot e on demand. Se il tipo di carico di lavoro riesce in modo semplice a reggere il potenziale recupero di istanze, l'utilizzo dello Spot di solito può essere molto conveniente per ridurre il budget HPC.
Se desideri modificare le caratteristiche del cluster, un modo semplice per farlo in modo dinamico è utilizzare la funzione "Aggiorna stack" offerto nella console di CloudFormation. Si noti che alcune delle modifiche potrebbero temporaneamente interrompere la funzionalità del cluster. A meno che le conseguenze non ti siano familiari, riconfigura i parametri del tuo stack solo quando non vi è alcun carico di lavoro nel cluster.
Prova questa caratteristica sullo stack DefaultCluster seguendo le istruzioni di seguito:
Auto Scaling è una caratteristica di Amazon EC2 che consente di sostenere la disponibilità delle applicazioni e di ricalibrare automaticamente la capacità di EC2 in base a condizioni personalizzate. Puoi impiegare Auto Scaling per eseguire il numero desiderato di istanze Amazon EC2.
La dimensione del cluster in questa esercitazione sono costantemente monitorate e modificate dalla caratteristica EC2 di Auto Scaling. Se conosci le dimensioni del cluster ottimale per il tuo carico di lavoro (ad esempio, con un processo MPI multi-nodo), può essere più veloce e più efficiente effettuare il pre-provisioning sul numero di nodi del cluster invece di lasciarlo crescere in modo incrementale.
È possibile configurare le dimensioni del tuo cluster Auto Scaling seguendo le istruzioni di seguito: