Beskriva hur du kör Slurm med Azure CycleCloud

Slutförd

När du har slutfört den här lektionen bör du kunna använda Slurm på Azure CycleCloud.

Aktivera Slurm på CycleCloud

Du kan distribuera ett HPC-kluster (High Performance Computing) med hjälp av Azure CycleCloud genom att utföra följande steg:

  1. Anslut till en distribuerad Azure CycleCloud-instans och autentisera.

  2. På sidan Skapa ett nytt kluster granskar du de tillgängliga alternativen och i avsnittet Schemaläggare väljer du Slurm.

    En skärmbild som visar sidan Skapa ett nytt kluster i Azure CycleCloud-webbprogrammet.

  3. På fliken Om på sidan Nytt Slurm-kluster anger du ett namn för Slurm-klustret i textrutan Klusternamn.

  4. På fliken Obligatoriska inställningar på sidan Nytt Slurm-kluster konfigurerar du följande inställningar i textrutan Klusternamn:

    • Region: Definierar vilket datacenter som ska vara värd för klusternoder.
    • Scheduler VM-typ: Gör att du kan ange vm-SKU:n för den virtuella dator som ska vara värd för jobbschemaläggaren.
    • HPC VM-typ: Gör att du kan ange VM SKU för den virtuella datorn som ska vara värd för HPC-partitionsarbetsbelastningar.
    • TYP AV VIRTUELL HTC-dator: Gör att du kan ange vm-SKU:n för den virtuella dator som ska vara värd för HTC-partitionsarbetsbelastningar.
    • Autoskalning: Gör att du kan aktivera eller inaktivera start och stopp av vm-instanser som är värdar för partitionsnoder när dessa noder krävs eller inte längre krävs.
    • Maximalt antal HPC-kärnor: Det maximala antalet CPU-kärnor som kan allokeras till HPC-partitioner vid automatisk skalning.
    • Max HTC Cores: Det maximala antalet CPU-kärnor som kan allokeras till HTC-partitioner vid automatisk skalning.
    • Maximalt antal virtuella datorer per skalningsuppsättning: Det maximala antalet virtuella datorer som kan användas som värd för partitionsarbetsbelastningar.
    • Använd instanser av oanvänd kapacitet: Avgör om du vill tillåta användning av Azure Spot-instanser. Även om instanser av oanvänd kapacitet är betydligt billigare att köra, kan de tas bort utan varning, vilket kan påverka jobbkörningen.
    • Undernäts-ID: Undernätet för det virtuella Azure-nätverket som ska vara värd för virtuella klusternoder.

    En skärmbild som visar fliken Obligatoriska inställningar på sidan Nytt Slurm-kluster i Azure CycleCloud-webbprogrammet.

  5. På sidan Nätverksansluten lagring konfigurerar du om du ska använda de inbyggda eller externa NFS-alternativen för den nätverksanslutna lagringsmonteringen. När du väljer Inbyggd konfigureras scheduler-noden som en NFS-server som fungerar som monteringspunkt för andra noder. Om du anger extern NFS kan du ange information om en nätverksansluten lagringsenhet, till exempel Azure NetApp Files, HPC Cache eller en särskilt konfigurerad virtuell dator som kör en NFS-server.

  6. På sidan Avancerade inställningar kan du ange följande inställningar:

    • Slurm-version: Välj den Slurm-version som ska användas med klustret.
    • Jobbredovisning: Ange om du vill aktivera jobbredovisning och de inställningar som du väljer för att lagra redovisningsdata.
    • Avstängningsprincip: Du kan välja mellan att avsluta instansen eller frigöra instansen.
    • Autentiseringsuppgifter: Autentiseringsuppgifterna för att ansluta till den associerade Azure-prenumerationen.
    • Scheduler OS: Välj vilket Linux-operativsystem som ska användas som värd för schemaläggaren.
    • HPC OS: Ange vilket Linux-operativsystem som ska användas som värd för schemaläggaren.
    • Scheduler Cluster Init: Här anger du anpassade instruktioner som ska tillämpas på den virtuella scheduler-datorn.
    • HTC Cluster Init: Ange anpassade instruktioner som ska tillämpas på HTC-noder.
    • Avancerat nätverk: Med det här alternativet kan du aktivera Returproxy, om huvudnoden kan nås från Internetadresser och om körningsnoder kan nås från Internet.

    En skärmbild som visar fliken Avancerade inställningar på sidan Nytt Slurm-kluster i Azure CycleCloud-webbprogrammet.

  7. sidan Cloud-init kan du skicka anpassade konfigurationsinställningar till virtuella datornoder när de har distribuerats.

Minnesinställningar

CycleCloud anger automatiskt mängden tillgängligt minne som Slurm ska använda i schemaläggningssyfte. Eftersom mängden tillgängligt minne kan ändras något på grund av olika Alternativ för Linux-kernel, och operativsystemet och den virtuella datorn kan använda en liten mängd minne som annars skulle vara tillgängligt för jobb, minskar CycleCloud automatiskt mängden minne i Slurm-konfigurationen. Som standard rymmer CycleCloud fem procent av det rapporterade tillgängliga minnet på en virtuell dator, men du kan åsidosätta det här värdet i klustermallen genom att ange slurm.dampen_memory den procentandel minne som ska hållas tillbaka. Om du till exempel vill lagra 20 procent av en virtuell dators minne använder du:

slurm.dampen_memory=20

Konfigurera Slurm-partitioner

Standardmallen som levereras med Azure CycleCloud har två partitioner (HPC och HTC) och du kan definiera anpassade nodmatriser som mappar direkt till Slurm-partitioner. Om du till exempel vill skapa en GPU-partition lägger du till följande avsnitt i klustermallen:

[[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

Redigera befintliga Slurm-kluster

Om du ändrar och tillämpar ändringar i ett befintligt Slurm-kluster måste du återskapa slurm.conf filen och uppdatera de befintliga noderna i klustret. Du kan göra detta med hjälp av ett skript som finns i Slurm-kluster som distribueras i Azure cyclecloud med hjälp av ett särskilt skript med namnet cyclecloud_slurm.sh. Skriptet finns i /opt/cycle/slurm katalogen på noden Slurm Scheduler. När du har gjort några ändringar i klustret kör du följande skript som rot med parametern apply_changes . Använd/opt/cycle/slurm/cyclecloud_slurm.sh apply_changes till exempel om du gör ändringar som påverkar noder som deltar i en MPI-partition (Message Passing Interface).

Inaktivera autoskalning för noder eller partitioner

Du kan inaktivera autoskalning för ett Slurm-kluster som körs genom att slurm.conf redigera filen direkt. Du kan undanta enskilda noder eller hela partitioner från att skalas automatiskt.

Om du vill exkludera en nod eller flera noder från autoskalning lägger du till SuspendExcNodes=<listofnodes> i Slurm-konfigurationsfilen. Om du till exempel vill exkludera noderna 1 och 2 från HPC-partitionen lägger du till följande i /sched/slurm.conf och startar sedan om slurmctld-tjänsten:

SuspendExcNodes=hpc-pg0-[1-2]

Om du vill undanta partitioner ändrar /sched/slurm.conf du även filen. Om du till exempel vill undanta HPC-partitionen från autoskalning lägger du till följande rad i slurm.conf och startar om slurmctld tjänsten:

SuspendExcParts=hpc