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_default
default_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.