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


OpenPBS

Az OpenPBS egyszerűen engedélyezhető CycleCloud-fürtökön a fürtdefiníció konfigurációs szakaszában található "run_list" módosításával. A PBS Professional-fürt két alapvető összetevője a fő csomópont, amely egy megosztott fájlrendszert biztosít, amelyen a PBS Professional szoftver fut, valamint a megosztott fájlrendszert csatlakoztató és az elküldött feladatokat végrehajtó "végrehajtási" csomópontok. Egy egyszerű fürtsablon-kódrészlet például a következőképpen nézhet ki:

[cluster my-pbspro]

[[node master]]
    ImageName = cycle.image.centos7
    MachineType = Standard_A4 # 8 cores

    [[[configuration]]]
    run_list = role[pbspro_master_role]

[[nodearray execute]]
    ImageName = cycle.image.centos7
    MachineType = Standard_A1  # 1 core

    [[[configuration]]]
    run_list = role[pbspro_execute_role]

A CycleCloudban definícióval rendelkező fürtök importálása és elindítása egyetlen fő csomópontot eredményez. A végrehajtási csomópontok a paranccsal adhatók hozzá a cyclecloud add_node fürthöz. Például további 10 végrehajtási csomópont hozzáadásához:

cyclecloud add_node my-pbspro -t execute -c 10

PBS erőforrás-alapú automatikus skálázás

A Cyclecloud két erőforrást tart fenn a dinamikus kiépítési képesség bővítéséhez. Ezek az erőforrások nodearray és machinetype típusúak.

Ha elküld egy feladatot, és megad egy csomópontarray-erőforrást, qsub -l nodearray=highmem -- /bin/hostname akkor a CycleCloud csomópontokat ad hozzá a "highmem" nevű csomóponthoz. Ha nincs ilyen csomópont, akkor a feladat tétlen marad.

Hasonlóképpen, ha meg van adva egy géptípus-erőforrás, amely egy feladatküldést végez, például qsub -l machinetype:Standard_L32s_v2 my-job.sha CycleCloud automatikusan skálázja a "Standard_L32s_v2" az "execute" (alapértelmezett) csomópontban. Ha ez a géptípus nem érhető el a "végrehajtás" csomóponttömbben, a feladat tétlen marad.

Ezek az erőforrások a következő módon használhatók:

qsub -l nodes=8:ppn=16:nodearray=hpc:machinetype=Standard_HB60rs my-simulation.sh

amely csak akkor skáláz automatikusan, ha a "Standard_HB60rs" gépeknél a "hpc" csomóponttömb van megadva.

Nodearrayshoz rendelt további üzenetsorok hozzáadása

A több csomópontos csomópontokkal rendelkező fürtökön gyakran hozunk létre külön üzenetsorokat, hogy a feladatokat automatikusan a megfelelő virtuálisgép-típusra irányítsuk. Ebben a példában feltételezzük, hogy a fürtsablonban a következő "gpu" nodearray van definiálva:

    [[nodearray gpu]]
    Extends = execute
    MachineType = Standard_NC24rs

        [[[configuration]]]
        pbspro.slot_type = gpu

A fürtsablon importálása és a fürt elindítása után a következő parancsok futtathatók a kiszolgálócsomóponton a "gpu" üzenetsor létrehozásához:

/opt/pbs/bin/qmgr -c "create queue gpu"
/opt/pbs/bin/qmgr -c "set queue gpu queue_type = Execution"
/opt/pbs/bin/qmgr -c "set queue gpu resources_default.ungrouped = false"
/opt/pbs/bin/qmgr -c "set queue gpu resources_default.place = scatter"
/opt/pbs/bin/qmgr -c "set queue gpu resources_default.slot_type = gpu"
/opt/pbs/bin/qmgr -c "set queue gpu default_chunk.ungrouped = false"
/opt/pbs/bin/qmgr -c "set queue gpu default_chunk.slot_type = gpu"
/opt/pbs/bin/qmgr -c "set queue gpu enabled = true"
/opt/pbs/bin/qmgr -c "set queue gpu started = true"

Megjegyzés

A fenti üzenetsor-definíció az üzenetsor összes virtuális gépét egyetlen virtuálisgép-méretezési csoportba csomagolja az MPI-feladatok támogatásához. A soros feladatok várólistájának meghatározásához és több virtuálisgép-méretezési csoport engedélyezéséhez állítsa be ungrouped = true mindkettőt resources_default és default_chunk. Azt is beállíthatja resources_default.place = pack , hogy az ütemező a feladatok ciklikus időszeleteléses lefoglalása helyett virtuális gépekre csomagolja a feladatokat. A PBS-feladatok csomagolásával kapcsolatos további információkért tekintse meg a PBS Professional OSS hivatalos dokumentációját.

PBS professional konfigurációs referencia

Az alábbiakban a PBS Professional-specifikus konfigurációs beállításokat találja, amelyekkel testre szabhatja a funkciókat:

PBS Pro-beállítások Description
pbspro.slots Egy adott csomópont tárolóhelyeinek száma, amelyet a PBS Pro-nak kell jelentenie. A tárolóhelyek száma az egy csomópont által futtatható egyidejű feladatok száma. Ez az érték alapértelmezés szerint az adott gépen lévő cpu-k száma. Ezt az értéket felülbírálhatja olyan esetekben, amikor nem cpu-alapú feladatokat futtat, hanem memórián, GPU-kon stb. alapul.
pbspro.slot_type A csomópont által megadott "pont" típusának neve. Az alapértelmezett érték a "execute". Ha egy feladat meg van címkézve a rögzített erőforrással slot_type=<type>, a feladat csak azonos típusú gépen fog futni. Így csomópontonként különböző szoftver- és hardverkonfigurációkat hozhat létre, és gondoskodhat arról, hogy a megfelelő feladat mindig a megfelelő csomóponttípuson legyen ütemezve.
pbspro.version Alapértelmezett: '18.1.3-0'. Ez a pbs professional verzió, amelyet telepíteni és futtatni kell. Jelenleg ez az alapértelmezett és egyetlen lehetőség. A jövőben a PBS Professional szoftver további verziói is támogatottak lesznek.

A PBS csatlakoztatása a CycleClouddal

A CycleCloud az OpenPBS-fürtöket egy telepíthető, úgynevezett azpbs. Ez az ügynök a CycleCloudhoz csatlakozik a fürt- és virtuálisgép-konfigurációk olvasásához, valamint integrálható az OpenPBS-sel a feladat és a gazdagép adatainak hatékony feldolgozása érdekében. Általában minden azpbs konfiguráció megtalálható a autoscale.json fájlban /opt/cycle/pbspro/autoscale.json.

  "password": "260D39rWX13X",
  "url": "https://cyclecloud1.contoso.com",
  "username": "cyclecloud_api_user",
  "logging": {
    "config_file": "/opt/cycle/pbspro/logging.conf"
  },
  "cluster_name": "mechanical_grid",

Fontos fájlok

Az azpbs ügynök minden híváskor elemzi a PBS-konfigurációt – feladatok, üzenetsorok, erőforrások. Az információkat a parancs stderr- és stdout-fájljában, valamint egy naplófájlban lehet megadni, mindkettő konfigurálható szinten. A rendszer az összes argumentumot tartalmazó PBS-felügyeleti parancsot (qcmd) is naplózza a fájlba.

Ezek a fájlok az /opt/cycle/pbspro/ könyvtárban találhatók, ahol az ügynök telepítve van.

Fájl Hely Description
Automatikus skálázási konfiguráció autoscale.json Az automatikus skálázás, az erőforrástérkép és a CycleCloud hozzáférési adatainak konfigurálása
Automatikus méretezési napló autoscale.log Ügynök fő szálnaplózása, beleértve a CycleCloud-gazdagépek kezelését
Igénynapló demand.log Az erőforrás-egyeztetés részletes naplója
qcmd nyomkövetési napló qcmd.log Az ügynökhívások qcmd naplózása
Naplózási konfiguráció logging.conf Konfigurációk naplózási maszkokhoz és fájlhelyekhez

OpenPBS-erőforrások definiálása

Ez a projekt lehetővé teszi az OpenPBS-erőforrások és az Azure-beli virtuálisgép-erőforrások társítását a cyclecloud-pbspro (azpbs) projekten keresztül. Ez az erőforrás-kapcsolat a következőben van definiálva autoscale.json: .

Az általunk szállított fürtsablonnal definiált alapértelmezett erőforrások a következők:

{"default_resources": [
   {
      "select": {},
      "name": "ncpus",
      "value": "node.vcpu_count"
   },
   {
      "select": {},
      "name": "group_id",
      "value": "node.placement_group"
   },
   {
      "select": {},
      "name": "host",
      "value": "node.hostname"
   },
   {
      "select": {},
      "name": "mem",
      "value": "node.memory"
   },
   {
      "select": {},
      "name": "vm_size",
      "value": "node.vm_size"
   },
   {
      "select": {},
      "name": "disk",
      "value": "size::20g"
   }]
}

A megnevezett mem OpenPBS-erőforrás egy csomópontattribútumnak node.memoryfelel meg, amely a virtuális gépek teljes memóriája. Ez a konfiguráció lehetővé teszi azpbs egy erőforrás-kérés feldolgozását, például -l mem=4gb a feladat erőforrás-követelményeinek és a csomópont-erőforrások értékének összehasonlításával.

Vegye figyelembe, hogy a lemez jelenleg a merevlemezére size::20gvan kódolva. Íme egy példa a virtuális gép méretéhez tartozó lemezméret kezelésére

   {
      "select": {"node.vm_size": "Standard_F2"},
      "name": "disk",
      "value": "size::20g"
   },
   {
      "select": {"node.vm_size": "Standard_H44rs"},
      "name": "disk",
      "value": "size::2t"
   }

Automatikus skálázás és méretezési csoport

A CycleCloud az OpenPBS-fürtökben eltérően kezeli a spanning és a soros feladatokat. Az átfedésben lévő feladatok olyan csomópontokra kerülnek, amelyek ugyanahhoz az elhelyezési csoporthoz tartoznak. Az elhelyezési csoportnak van egy adott platform jelentése (VirtualMachineScaleSet with SinglePlacementGroup=true), és a MÁSOLATOT egy elnevezett elhelyezési csoportot kezel minden egyes átnyúlt csomópontkészlethez. Ehhez az elhelyezési csoportnévhez használja a PBS-erőforrást group_id .

Az hpc üzenetsor a natív üzenetsor alapértelmezett értékeinek használatával fűzi hozzá a megfelelőt -l place=scatter:group=group_id .

A CycleCloud OpenPBS-ügynök telepítése azpbs

Az OpenPBS CycleCloud-fürt kezeli az ügynök telepítését és konfigurációját a kiszolgálócsomóponton. Az előkészítés magában foglalja a PBS-erőforrások, üzenetsorok és horgok beállítását. A szkriptelt telepítés a CycleCloudon kívül is elvégezhető.

# Prerequisite: python3, 3.6 or newer, must be installed and in the PATH
wget https://github.com/Azure/cyclecloud-pbspro/releases/download/2.0.5/cyclecloud-pbspro-pkg-2.0.5.tar.gz
tar xzf cyclecloud-pbspro-pkg-2.0.5.tar.gz
cd cyclecloud-pbspro

# Optional, but recommended. Adds relevant resources and enables strict placement
./initialize_pbs.sh

# Optional. Sets up workq as a colocated, MPI focused queue and creates htcq for non-MPI workloads.
./initialize_default_queues.sh

# Creates the azpbs autoscaler
./install.sh  --venv /opt/cycle/pbspro/venv

# Otherwise insert your username, password, url, and cluster name here.
./generate_autoscale_json.sh --install-dir /opt/cycle/pbspro \
                             --username user \
                             --password password \
                             --url https://fqdn:port \
                             --cluster-name cluster_name

azpbs validate

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

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), a amíg 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), a amíg egy csomópont tétlenül ül a feladatok elvégzése előtt, mielőtt leskálázódik.

Megjegyzés

A CycleCloud nem támogatja az open PBS-sel történő teljesítményfokozási konfigurációt.

Megjegyzés

Annak ellenére, hogy a Windows hivatalosan támogatott Open PBS platform, a CycleCloud jelenleg nem támogatja az Open PBS windowsos futtatását.