Descrivere come eseguire Slurm con Azure CycleCloud
Dopo aver completato questa unità, si sarà in grado di usare Slurm in Azure CycleCloud.
Abilitazione di Slurm in CycleCloud
È possibile distribuire un cluster High Performance Computing (HPC) tramite Azure CycleCloud eseguendo i passaggi seguenti:
Connettersi a un'istanza distribuita di Azure CycleCloud ed eseguire l'autenticazione.
Nella pagina Crea un nuovo cluster esaminare le opzioni disponibili e nella sezione Utilità di pianificazione selezionare Slurm.
Nella scheda Informazioni della pagina Nuovo cluster Slurm specificare un nome per il cluster Slurm nella casella di testo Nome cluster.
Nella scheda Impostazioni necessarie della pagina Nuovo cluster Slurm, configurare le impostazioni seguenti nella casella di testo nome cluster:
- Area: Definisce quale data center ospiterà i nodi del cluster.
- Tipo di macchina virtuale dell'utilità di pianificazione: Consente di specificare lo SKU della macchina virtuale che ospiterà il pianificatore di processi.
- Tipo di macchina virtuale HPC: Consente di specificare lo SKU della macchina virtuale che ospiterà i carichi di lavoro delle partizioni HPC dell'host.
- Tipo di macchina virtuale HTC: Consente di specificare lo SKU della macchina virtuale che ospiterà i carichi di lavoro delle partizioni HTC dell'host.
- Scalabilità automatica: Consente di abilitare o disabilitare l'avvio e l'arresto delle istanze di macchine virtuali che ospitano nodi delle partizioni quando sono necessarie o non lo sono più.
- Numero massimo di core HPC: Il numero massimo di core di CPU che possono essere allocati alle partizioni HPC quando è abilitata la scalabilità automatica.
- Numero massimo di core HTC: Il numero massimo di core di CPU che possono essere allocati alle partizioni HTC quando è abilitata la scalabilità automatica.
- Numero massimo di macchine virtuali per set di scalabilità: Il numero massimo di macchine virtuali che è possibile usare per i carichi di lavoro delle partizioni dell'host.
- Usare istanze spot: Determina se si vuole consentire l'uso di istanze spot di Azure. Anche se le istanze spot sono notevolmente meno costose da eseguire, possono essere rimosse senza alcun avviso, il che può influire sull'esecuzione dei processi.
- Subnet ID: La subnet della rete virtuale di Azure che ospiterà le macchine virtuali dei nodi dell'host.
Nella pagina Archiviazione connessa alla rete configurare se si useranno le opzioni Builtin o External NFS per il montaggio di archiviazione collegato alla rete. Quando si seleziona Builtin, il nodo dell'utilità di pianificazione viene configurato come server NFS che funge da punto di montaggio per altri nodi. Se si specifica External NFS, è possibile specificare i dettagli di un dispositivo NAS come Azure NetApp Files, Cache HPC o una macchina virtuale appositamente configurata che esegue un server NFS.
Nella pagina Impostazioni avanzate è possibile specificare le impostazioni seguenti:
- Versione Slurm: Scegliere la versione Slurm da usare con il cluster.
- Contabilità dei processi: Specificare se si vuole abilitare la contabilità dei processi e le impostazioni che si sceglie di archiviare i dati contabili.
- Criteri di arresto: È possibile scegliere se terminare o deallocare l'istanza.
- Credenziali: Credenziali per connettersi alla sottoscrizione di Azure associata.
- Sistema operativo dell'utilità di pianificazione: Scegliere il sistema operativo Linux usato per ospitare l'utilità di pianificazione.
- Sistema operativo HPC: Specificare il sistema operativo da usare per ospitare l'utilità di pianificazione.
- Cluster Init dell'utilità di pianificazione: In questo caso si specificano istruzioni personalizzate da applicare alla macchina virtuale dell'utilità di pianificazione.
- HTC Cluster Init: Specificare istruzioni personalizzate da applicare ai nodi HTC.
- Rete avanzata: Questa opzione consente di abilitare Return Proxy, nonché di specificare se il nodo head è accessibile da indirizzi Internet e se i nodi di esecuzione sono accessibili da Internet.
La pagina Cloud-init consente di passare impostazioni di configurazione personalizzate ai nodi delle macchine virtuali dopo la distribuzione.
Impostazioni di memoria
CycleCloud imposta automaticamente la quantità di memoria disponibile per Slurm da usare a scopo di pianificazione. Poiché la quantità di memoria disponibile può cambiare leggermente in base alle diverse opzioni del kernel Linux e il sistema operativo e la macchina virtuale possono usare una piccola quantità di memoria che altrimenti sarebbe disponibile per i processi, CycleCloud riduce automaticamente la quantità di memoria nella configurazione Slurm. Per impostazione predefinita, CycleCloud mantiene il 5% della memoria disponibile segnalata in una macchina virtuale, ma è possibile eseguire l'override di questo valore nel modello di cluster impostando slurm.dampen_memory
sulla percentuale di memoria da conservare. Ad esempio, per conservare il 20% della memoria di una macchina virtuale, usare:
slurm.dampen_memory=20
Configurazione delle partizioni Slurm
Il modello predefinito fornito con Azure CycleCloud include due partizioni (HPC e HTC) ed è possibile definire matrici di nodi personalizzate mappate direttamente alle partizioni Slurm. Ad esempio, per creare una partizione GPU, aggiungere la sezione seguente al modello di cluster:
[[nodearray gpu]]
MachineType = $GPUMachineType
ImageName = $GPUImageName
MaxCoreCount = $MaxGPUExecuteCoreCount
Interruptible = $GPUUseLowPrio
AdditionalClusterInitSpecs = $ExecuteClusterInitSpecs
[[[configuration]]]
slurm.autoscale = true
# Set to true if nodes are used for tightly-coupled multi-node jobs
slurm.hpc = false
[[[cluster-init cyclecloud/slurm:execute:2.0.1]]]
[[[network-interface eth0]]]
AssociatePublicIpAddress = $ExecuteNodesPublic
Modifica di cluster Slurm esistenti
Se si modificano e si applicano modifiche a un cluster Slurm esistente, è necessario ricompilare il file slurm.conf
e aggiornare i nodi esistenti nel cluster. A tale scopo, è possibile usare uno script presente nei cluster Slurm distribuiti in Azure cyclecloud usando uno script speciale denominato cyclecloud_slurm.sh
. Lo script si trova nella directory /opt/cycle/slurm
nel nodo dell'utilità di pianificazione Slurm. Dopo aver apportato modifiche al cluster, eseguire lo script seguente come radice con il parametro apply_changes
. Ad esempio, usare /opt/cycle/slurm/cyclecloud_slurm.sh apply_changes
se si apportano modifiche che influiscono su nodi che partecipano a una partizione MPI (Message Passing Interface).
Disabilitazione della scalabilità automatica per nodi o partizioni
È possibile disabilitare la scalabilità automatica per un cluster Slurm in esecuzione modificando direttamente il file slurm.conf
. È possibile escludere singoli nodi o intere partizioni dalla scalabilità automatica.
Per escludere un nodo o più nodi dalla scalabilità automatica, aggiungere SuspendExcNodes=<listofnodes>
al file di configurazione Slurm. Ad esempio, per escludere i nodi 1 e 2 dalla partizione HPC, aggiungere quanto segue a /sched/slurm.conf
e quindi riavviare il servizio slurmctld:
SuspendExcNodes=hpc-pg0-[1-2]
Per escludere le partizioni, modificare anche il file /sched/slurm.conf
. Ad esempio, per escludere la partizione HPC dalla scalabilità automatica, aggiungere la riga seguente a slurm.conf
e riavviare il servizio slurmctld
:
SuspendExcParts=hpc