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.

Argomenti trattati
  • 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

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

m4.16xlarge

64

256

Solo EBS

20 Gigabit

Intel Xeon E5-2686 v4

2,3

p2.16xlarge

64

732

Solo EBS

20 Gigabit

Intel Xeon E5-2686 v4

2,3

x1.32xlarge

128

1.952

2 x 1.920 SSD

20 Gigabit

Intel Xeon E7-8880 v3

2,3

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:

  • Istruzioni: modificare il tipo di istanza sul tuo cluster corrente

    1. Apri la console di CloudFormation, facendo clic qui.
    2. Fai clic con il pulsante destro del mouse su EnginFrame-DefaultCluster-##yourValues##. Seleziona Update Stack (Aggiorna stack).
    3. Seleziona Use current template (Usa modello corrente) e seleziona Next (Successivo).
      • Nota: selezionando Usa modello corrente, la procedura guidata di CloudFormation ti offrirà la possibilità di modificare un maggior numero di parametri rispetto allo stack, offrendo l'accesso alla più ampia flessibilità di CfnCluster.
    4. Attua le seguenti modifiche per la configurazione:
      • compute_instance_type: seleziona il tipo di istanza che preferisci per aggiornare i nodi di calcolo.
      • cluster_type: modifica la selezione in Spot. Quindi, imposta uno spot_price su un valore familiare basato sugli attuali prezzi di mercato.
    5. Seleziona Next (Successivo).
    6. Procedi con le prossime fasi della procedura guidata finché non viene visualizzata un'anteprima delle modifiche apportate e conferma selezionando Aggiorna per aggiornare il tuo stack. A seconda delle innumerevoli modifiche apportate, l'aggiornamento può richiedere alcuni minuti per propagarsi.

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:

  • Istruzioni: modificare i parametri di Auto Scaling sul tuo cluster

    1. Apri la console del gruppo Auto Scaling di Amazon EC2, facendo clic qui.
    2. Vedrai che il cluster predefinito ha creato un gruppo di Auto Scaling per il parco istanze di calcolo. La console fornisce informazioni sul numero corrente di istanze nel gruppo, i limiti minimo e massimo e il numero desiderato di istanze. 
    3. Il numero desiderato di istanze viene automaticamente influenzato dalle Le policy di dimensionamento attive nel cluster, ma è anche possibile modificarne il valore manualmente. Per modificare la dimensione desiderata di Auto Scaling o altri parametri, fai clic con il pulsante destro del mouse sul gruppo di Auto Scaling e seleziona Edit (Modifica).
    4. Il pannello inferiore si aggiorna con i dettagli dell'Auto Scaling. È possibile modificare il numero di sistemi di bilanciamento del carico, le istanze desiderate, il numero minimo e massimo di istanze (nodi) e molto altro. Al termine, seleziona Save (Salva).
      • Nota: se il numero desiderato di istanze è diverso dal numero di istanze, CloudFormation consente di creare o rimuovere le istanze per raggiungere il numero desiderato.

    (Fai clic per ingrandire)