Bagikan melalui


BukaPBS

OpenPBS dapat dengan mudah diaktifkan pada kluster CycleCloud dengan memodifikasi "run_list" di bagian konfigurasi definisi kluster Anda. Dua komponen dasar kluster PBS Professional adalah simpul 'master' yang menyediakan sistem file bersama tempat perangkat lunak PBS Professional berjalan, dan node 'jalankan' yang merupakan host yang memasang sistem file bersama dan menjalankan pekerjaan yang dikirimkan. Misalnya, cuplikan templat kluster sederhana mungkin terlihat seperti:

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

Mengimpor dan memulai kluster dengan definisi di CycleCloud akan menghasilkan satu simpul 'master'. Node eksekusi dapat ditambahkan ke kluster melalui cyclecloud add_node perintah . Misalnya, untuk menambahkan 10 simpul eksekusi lainnya:

cyclecloud add_node my-pbspro -t execute -c 10

Autoscaling berbasis Sumber Daya PBS

Cyclecloud mempertahankan dua sumber daya untuk memperluas kemampuan provisi dinamis. Sumber daya ini adalah nodearray dan machinetype.

Jika Anda mengirimkan pekerjaan dan menentukan sumber daya nodearray pada qsub -l nodearray=highmem -- /bin/hostname saat itu CycleCloud akan menambahkan simpul ke nodearray bernama 'highmem'. Jika tidak ada nodearray tersebut, maka pekerjaan akan tetap menganggur.

Demikian pula jika sumber daya machinetype ditentukan yang merupakan pengiriman pekerjaan, misalnya qsub -l machinetype:Standard_L32s_v2 my-job.sh, maka CycleCloud secara otomatis menskalakan 'Standard_L32s_v2' dalam nodearray 'execute' (default). Jika jenis komputer tersebut tidak tersedia dalam array node 'execute' maka pekerjaan akan tetap menganggur.

Sumber daya ini dapat digunakan dalam kombinasi sebagai:

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

yang akan menskalakan otomatis hanya jika komputer 'Standard_HB60rs' ditentukan array node 'hpc'.

Menambahkan antrean tambahan yang ditetapkan ke nodearrays

Pada kluster dengan beberapa nodearray, umum untuk membuat antrean terpisah untuk secara otomatis merutekan pekerjaan ke jenis VM yang sesuai. Dalam contoh ini, kita akan menganggap nodearray "gpu" berikut telah ditentukan dalam templat kluster Anda:

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

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

Setelah mengimpor templat kluster dan memulai kluster, perintah berikut dapat dijalankan pada simpul server untuk membuat antrean "gpu":

/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"

Catatan

Definisi antrean di atas akan mengemas semua VM dalam antrean ke dalam satu set skala VM untuk mendukung pekerjaan MPI. Untuk menentukan antrean untuk pekerjaan serial dan mengizinkan beberapa Set Skala VM, atur ungrouped = true untuk dan resources_defaultdefault_chunk. Anda juga dapat mengatur resources_default.place = pack apakah Anda ingin penjadwal mengemas pekerjaan ke VM alih-alih alokasi pekerjaan round-robin. Untuk informasi selengkapnya tentang pengemasan pekerjaan PBS, lihat dokumentasi resmi PBS Professional OSS.

Referensi Konfigurasi Profesional PBS

Berikut ini adalah opsi konfigurasi khusus PBS Professional yang dapat Anda alihkan untuk menyesuaikan fungsionalitas:

Opsi PBS Pro Deskripsi
pbspro.slots Jumlah slot untuk simpul tertentu untuk dilaporkan ke PBS Pro. Jumlah slot adalah jumlah pekerjaan bersamaan yang dapat dijalankan simpul, nilai ini default ke jumlah CPU pada komputer tertentu. Anda dapat mengambil alih nilai ini dalam kasus di mana Anda tidak menjalankan pekerjaan berdasarkan CPU tetapi pada memori, GPU, dll.
pbspro.slot_type Nama jenis 'slot' yang disediakan simpul. Defaultnya adalah 'execute'. Ketika pekerjaan ditandai dengan sumber daya slot_type=<type>keras , pekerjaan tersebut hanya akan berjalan pada mesin dengan jenis slot yang sama. Ini memungkinkan Anda untuk membuat konfigurasi perangkat lunak dan perangkat keras yang berbeda per simpul dan memastikan pekerjaan yang sesuai selalu dijadwalkan pada jenis simpul yang benar.
pbspro.version Default: '18.1.3-0'. Ini adalah versi PBS Professional untuk diinstal dan dijalankan. Saat ini adalah opsi default dan satu-satunya . Di masa mendatang, versi tambahan perangkat lunak PBS Professional mungkin didukung.

Menyambungkan PBS dengan CycleCloud

CycleCloud mengelola kluster OpenPBS melalui agen yang dapat diinstal yang disebut azpbs. Agen ini terhubung ke CycleCloud untuk membaca konfigurasi kluster dan VM dan juga terintegrasi dengan OpenPBS untuk memproses informasi pekerjaan dan host secara efektif. Semua azpbs konfigurasi ditemukan dalam autoscale.json file, biasanya /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",

File Penting

Agen azpbs mengurai konfigurasi PBS setiap kali disebut - pekerjaan, antrean, sumber daya. Informasi disediakan dalam stderr dan stdout perintah serta ke file log, keduanya pada tingkat yang dapat dikonfigurasi. Semua perintah manajemen PBS (qcmd) dengan argumen juga dicatat ke file.

Semua file ini dapat ditemukan di direktori /opt/cycle/pbspro/ tempat agen diinstal.

File Lokasi Deskripsi
Konfigurasi Skala Otomatis autoscale.json Konfigurasi untuk informasi akses Autoscale, Peta Sumber Daya, CycleCloud
Log Skala Otomatis autoscale.log Pengelogan utas utama agen termasuk manajemen host CycleCloud
Log Permintaan demand.log Log terperinci untuk pencocokan sumber daya
qcmd Trace Log qcmd.log Mencatat panggilan agen qcmd
Konfigurasi Pengelogan logging.conf Konfigurasi untuk masker pengelogan dan lokasi file

Menentukan Sumber Daya OpenPBS

Proyek ini memungkinkan asosiasi umum sumber daya OpenPBS dengan sumber daya Azure VM melalui proyek cyclecloud-pbspro (azpbs). Hubungan sumber daya ini didefinisikan dalam autoscale.json.

Sumber daya default yang ditentukan dengan templat kluster yang kami kirimkan adalah

{"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"
   }]
}

Sumber daya OpenPBS bernama mem disamakan dengan atribut node bernama node.memory, yang merupakan memori total komputer virtual apa pun. Konfigurasi ini memungkinkan azpbs untuk memproses permintaan sumber daya seperti -l mem=4gb dengan membandingkan nilai persyaratan sumber daya pekerjaan dengan sumber daya simpul.

Perhatikan bahwa disk saat ini dikodekan secara permanen ke size::20g. Berikut adalah contoh penanganan ukuran disk spesifik Ukuran VM

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

Skala Otomatis dan Set Skala

CycleCloud memperlakukan pekerjaan yang mencakup dan serial secara berbeda dalam kluster OpenPBS. Pekerjaan yang mencakup akan mendarat di simpul yang merupakan bagian dari grup penempatan yang sama. Grup penempatan memiliki arti platform tertentu (VirtualMachineScaleSet dengan SinglePlacementGroup=true) dan CC akan mengelola grup penempatan bernama untuk setiap set simpul yang membentang. Gunakan sumber daya group_id PBS untuk nama grup penempatan ini.

hpc Antrean menambahkan setara -l place=scatter:group=group_id dengan dengan menggunakan default antrean asli.

Menginstal Agen CycleCloud OpenPBS azpbs

Kluster OpenPBS CycleCloud akan mengelola penginstalan dan konfigurasi agen pada simpul server. Persiapan ini mencakup pengaturan sumber daya PBS, antrean, dan kait. Penginstalan berskrip juga dapat dilakukan di luar CycleCloud.

# 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

CycleCloud mendukung sekumpulan atribut autostop standar di seluruh penjadwal:

Atribut Deskripsi
cyclecloud.cluster.autoscale.stop_enabled Apakah autostop diaktifkan pada simpul ini? [benar/salah]
cyclecloud.cluster.autoscale.idle_time_after_jobs Jumlah waktu (dalam detik) untuk simpul untuk duduk diam setelah menyelesaikan pekerjaan sebelum diturunkan skalanya.
cyclecloud.cluster.autoscale.idle_time_before_jobs Jumlah waktu (dalam detik) untuk simpul untuk duduk diam sebelum menyelesaikan pekerjaan sebelum diturunkan skalanya.

Catatan

CycleCloud tidak mendukung konfigurasi bursting dengan Open PBS.

Catatan

Meskipun Windows adalah platform Open PBS yang didukung secara resmi, CycleCloud tidak mendukung menjalankan Open PBS di Windows saat ini.