Megosztás a következőn keresztül:


CycleCloud Slurm 3.0

A Slurm scheduler támogatása át lett írva a CycleCloud 8.4.0 kiadás részeként. A legfontosabb funkciók a következők:

  • Dinamikus csomópontok és dinamikus partíciók támogatása dinamikus csomópontokon keresztül, egyetlen és több virtuálisgép-méret támogatásával
  • Új slurm-verziók 23.02 és 22.05.8
  • Költségjelentés parancssori felülettel azslurm
  • azslurm cli-alapú automatikus skálázó
  • Ubuntu 20-támogatás
  • Megszűnt a topológia beépülő modul iránti igény, ezért a küldési beépülő modul is

Slurm-fürtök a CycleCloud 8.4.0-s verzióiban <

További információ: Váltás 2.7-ről 3.0-ra .

Fürtmódosítások végrehajtása

A CycleCloudban üzembe helyezett Slurm-fürt tartalmaz egy cli-t, azslurm amely megkönnyíti a fürt módosítását. A fürt módosítása után futtassa a következő parancsot gyökérként a Slurm scheduler csomóponton a azure.conf fürt csomópontjának újraépítéséhez és frissítéséhez:

      $ sudo -i
      # azslurm scale

Ennek a megfelelő számú csomóponttal kell létrehoznia a partíciókat, a megfelelőt gres.conf , és újra kell indítania a következőt slurmctld: .

A csomópontok létrehozása már nem előz meg végrehajtási csomópontokat

A CycleCloud Slurm projekt 3.0.0-s verziójától már nem hozunk létre előzetesen csomópontokat a CycleCloudban. A csomópontok akkor jönnek létre, amikor azslurm resume meghívják, vagy manuálisan hozzák létre őket a CycleCloudban a CLI-n keresztül.

További partíciók létrehozása

Az Azure CycleCloudot tartalmazó alapértelmezett sablon három partícióval (hpcés dynamic) rendelkezik, htc és egyéni csomópontarray-ket definiálhat, amelyek közvetlenül Slurm-partíciókhoz vannak leképezve. GPU-partíció létrehozásához például adja hozzá a következő szakaszt a fürtsablonhoz:

   [[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:3.0.1]]]
      [[[network-interface eth0]]]
      AssociatePublicIpAddress = $ExecuteNodesPublic

Dinamikus partíciók

Mostantól támogatjuk a 3.0.1dinamikus partíciókat. A dinamikus partíciókra az alábbiak hozzáadásával készíthet nodearray térképet. Vegye figyelembe, hogy myfeature bármilyen kívánt funkcióleírás lehet. Több funkció is lehet, vesszővel elválasztva.

      [[[configuration]]]
      slurm.autoscale = true
      # Set to true if nodes are used for tightly-coupled multi-node jobs
      slurm.hpc = false
      # This is the minimum, but see slurmd --help and [slurm.conf](https://slurm.schedmd.com/slurm.conf.html) for more information.
      slurm.dynamic_config := "-Z --conf \"Feature=myfeature\""

Ez a következőhöz hasonló dinamikus partíciót hoz létre

# Creating dynamic nodeset and partition using slurm.dynamic_config=-Z --conf "Feature=myfeature"
Nodeset=mydynamicns Feature=myfeature
PartitionName=mydynamicpart Nodes=mydynamicns

Dinamikus partíciók használata automatikus skálázáshoz

Alapértelmezés szerint nem definiálunk csomópontokat a dinamikus partícióban. Ehelyett elindíthatja a csomópontokat a CycleCloudon keresztül, vagy manuálisan invokálva azslurm resume , és bármilyen névvel csatlakoznak a fürthöz. A Slurm azonban nem tud ezekről a csomópontokról, így nem tudja automatikusan felskálázni őket.

Ehelyett előre létrehozhat csomópontrekordokat is, így a Slurm automatikusan felskálázhatja őket.

scontrol create nodename=f4-[1-10] Feature=myfeature State=CLOUD

A dinamikus partíciók másik előnye, hogy több virtuálisgép-méretet is támogathat ugyanabban a partícióban. Egyszerűen adja hozzá a virtuálisgép-méret nevét szolgáltatásként, majd azslurm meg tudja különböztetni a használni kívánt virtuálisgép-méretet.

Megjegyzés A virtuális gép mérete implicit módon lesz hozzáadva. Nem kell hozzáadnia a slurm.dynamic_config

scontrol create nodename=f4-[1-10] Feature=myfeature,Standard_F4 State=CLOUD
scontrol create nodename=f8-[1-10] Feature=myfeature,Standard_F8 State=CLOUD

Bármelyik módon is, miután létrehozta ezeket a csomópontokat egy State=Cloud adott csomóponton, már elérhetőek az automatikus skálázáshoz, mint más csomópontok.

Ha több virtuálisgép-méretet szeretne támogatni egy CycleCloud-csomópontarrayban, módosíthatja a sablont, hogy több virtuálisgép-méretet is engedélyezjen a hozzáadásával Config.Mutiselect = true.

        [[[parameter DynamicMachineType]]]
        Label = Dyn VM Type
        Description = The VM type for Dynamic nodes
        ParameterType = Cloud.MachineType
        DefaultValue = Standard_F2s_v2
        Config.Multiselect = true

Dinamikus leskálázás

Alapértelmezés szerint a dinamikus partíció összes csomópontja ugyanúgy leskálázódik, mint a többi partíció. Ennek letiltásához lásd: SuspendExcParts.

Manuális skálázás

Ha cyclecloud_slurm észleli, hogy az automatikus skálázás le van tiltva (SuspendTime=-1), a FUTURE állapotot fogja használni a lehajtott csomópontok jelölésére ahelyett, hogy az Slurm energiaállapotára támaszkodik. Vagyis ha az automatikus skálázás engedélyezve van, a kikapcsolva lévő csomópontok sinfo-ként idle~ vannak jelölve. Ha az automatikus skálázás le van tiltva, a kikapcsolva csomópontok egyáltalán nem jelennek meg a sinfo-ban. A definíciójuk továbbra is látható a következővel: scontrol show nodes --future.

Új csomópontok indításához futtassa a parancsot /opt/azurehpc/slurm/resume_program.sh node_list (például htc-[1-10]).

A csomópontok leállításához futtassa a parancsot /opt/azurehpc/slurm/suspend_program.sh node_list (például htc-[1-10]).

Ha ebben a módban szeretne fürtöt indítani, egyszerűen adja hozzá SuspendTime=-1 a sablon további slurm konfigurációját.

Ha egy fürtöt erre a módra szeretne váltani, adja hozzá SuspendTime=-1 az slurm.conf fájlhoz, és futtassa a parancsot scontrol reconfigure. Ez után futtassa a azslurm remove_nodes && azslurm scale parancsot.

Hibaelhárítás

Váltás 2.7-ről 3.0-ra

  1. A telepítési mappa megváltozott/opt/cycle/slurm ->/opt/azurehpc/slurm

  2. Az automatikus skálázási naplók mostantól a helyett /var/log/slurmctlda -ben /opt/azurehpc/slurm/logs vannak. Megjegyzés: slurmctld.log a mappa továbbra is ebben a mappában lesz.

  3. cyclecloud_slurm.sh Létezik. Ehelyett van egy új azslurm parancssori felület, amely gyökérként futtatható. azslurm támogatja az automatikus kiegészítést.

    [root@scheduler ~]# azslurm
    usage: 
    accounting_info      - 
    buckets              - Prints out autoscale bucket information, like limits etc
    config               - Writes the effective autoscale config, after any preprocessing, to stdout
    connect              - Tests connection to CycleCloud
    cost                 - Cost analysis and reporting tool that maps Azure costs to Slurm Job Accounting data. This is an experimental feature.
    default_output_columns - Output what are the default output columns for an optional command.
    generate_topology    - Generates topology plugin configuration
    initconfig           - Creates an initial autoscale config. Writes to stdout
    keep_alive           - Add, remove or set which nodes should be prevented from being shutdown.
    limits               - 
    nodes                - Query nodes
    partitions           - Generates partition configuration
    refresh_autocomplete - Refreshes local autocomplete information for cluster specific resources and nodes.
    remove_nodes         - Removes the node from the scheduler without terminating the actual instance.
    resume               - Equivalent to ResumeProgram, starts and waits for a set of nodes.
    resume_fail          - Equivalent to SuspendFailProgram, shuts down nodes
    retry_failed_nodes   - Retries all nodes in a failed state.
    scale                - 
    shell                - Interactive python shell with relevant objects in local scope. Use --script to run python scripts
    suspend              - Equivalent to SuspendProgram, shuts down nodes
    wait_for_resume      - Wait for a set of nodes to converge.
    
  4. A csomópontok már nem lesznek előre feltöltve a CycleCloudban. Ezek csak akkor jönnek létre, ha szükséges.

  5. Az összes slurm bináris fájl a fájlban található, a azure-slurm-install-pkg*.tar.gz alatt slurm-pkgs. A rendszer egy adott bináris kiadásból kéri le őket. A jelenlegi bináris releaes 2023-03-13

  6. MPI-feladatok esetén alapértelmezés szerint az egyetlen hálózati határ a partíció. Partíciónként nincs több "elhelyezési csoport", például 2.x. Így partíciónként csak egy megosztott VMSS-et használhat. A topológia beépülő modul nem is használható, ami szükségessé tette a feladatbeküldési beépülő modul használatát, amelyre már nincs szükség. Ehelyett a több partícióra való küldés az ajánlott lehetőség olyan használati esetekhez, amelyek több elhelyezési csoportnak való feladatküldést igényelnek.

A CycleCloud támogatja az ütemezést ütemezők közötti automatikus attribútumok szabványos készletét:

Attribútum Leírás
cyclecloud.cluster.autoscale.stop_enabled Engedélyezve van az automatikus beállítás ezen a csomóponton? [igaz/hamis]
cyclecloud.cluster.autoscale.idle_time_after_jobs Az az idő (másodpercben), amikor egy csomópont tétlenül ül a feladatok elvégzése után, mielőtt leskálázható lenne.
cyclecloud.cluster.autoscale.idle_time_before_jobs Az az idő (másodpercben), amikor egy csomópont tétlenül ül, mielőtt befejezi a feladatokat a leskálázás előtt.