Latihan - Menambahkan array node kustom ke kluster HPC
Perhatian
Konten ini mereferensikan CentOS, distribusi Linux yang merupakan status End Of Life (EOL). Harap pertimbangkan penggunaan dan rencanakan yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.
Nodearray adalah kumpulan node yang dikonfigurasi secara identik dari kluster Azure CycleCloud. Nodearray bertujuan untuk mengakomodasi penskalaan horizontal dari sumber daya komputasi kluster karena jumlah antrean pekerjaan berubah. Setiap nodearray memiliki nama, sekumpulan atribut yang berlaku untuk setiap node, dan atribut opsional yang menjelaskan cara nodearray melakukan penskalaan.
Penjadwal pekerjaan Slurm mengelompokkan simpul ke dalam set logis dan berpotensi tumpang tindih. Tujuan mereka adalah untuk mengoptimalkan pemrosesan pekerjaan dengan memperhitungkan batasan spesifik mereka seperti sumber daya atau batas waktu. Penjadwal mengalokasikan pekerjaan ke node dalam partisi sampai sumber daya habis atau semua pekerjaan sudah diproses.
Anda ingin mengubah kluster yang dikelola Azure CycleCloud yang baru disebarkan untuk memperhitungkan kebutuhan sumber daya khusus pekerjaan. Untuk mencapai tujuan ini, Anda memutuskan untuk mengimplementasikan lebih banyak perubahan pada templat dasar dan memvalidasi pendekatan Anda.
Pada latihan ini, Anda akan melakukan tugas-tugas berikut:
- Tugas 1: Menambahkan definisi nodearray ke templat Azure CycleCloud
- Tugas 2: Menambahkan parameter antarmuka grafis ke templat Azure CycleCloud
- Tugas 3: Mengekspor properti kluster Azure CycleCloud
- Tugas 4: Mengedit file properti agar menyertakan parameter baru
- Tugas 5: Mengimpor file templat dan parameter yang sudah diubah ke kluster yang ada
Catatan
Pastikan Anda berhasil menyelesaikan latihan sebelumnya sebelum memulai latihan ini.
Tugas 1: Menambahkan definisi nodearray ke templat Azure CycleCloud
Anda akan mulai dengan menambahkan definisi nodearray dalam templat Slurm yang Anda sesuaikan di latihan sebelumnya. Templat sampel berisi dua partisi berlabel hpc dan htc. Anda akan membuat partisi lain dan nodearray yang sesuai untuk pekerjaan yang memanfaatkan kemampuan Compute Unified Device Architecture (CUDA).
Arahkan ke portal Microsoft Azure. Saat diminta, autentikasi dengan akun Microsoft atau akun Microsoft Entra yang memiliki peran Kontributor atau Pemilik dalam langganan Azure yang Anda gunakan dalam modul ini.
Dari portal Microsoft Azure, buka Cloud Shell dengan memilih ikonnya pada bar alat di samping kotak teks pencarian dan pastikan Anda menjalankan sesi Bash.
Jalankan perintah berikut di Cloud Shell untuk mengatur direktori kerja ke yang menghosting repositori GitHub yang Anda ambil di latihan sebelumnya:
cd ~/cyclecloud-slurm/templates
Jalankan perintah berikut untuk membuka templat yang diunduh di editor nano:
nano slurm.txt
Di antarmuka editor nano, gulir ke bagian
[parameters About]
dan tambahkan konten berikut langsung sebelum:[[nodearray cuda]] MachineType = $CUDAMachineType ImageName = $CUDAImageName MaxCoreCount = $MaxCUDAExecuteCoreCount AdditionalClusterInitSpecs = $CUDAClusterInitSpecs [[[configuration]]] slurm.autoscale = true slurm.hpc = true [[[cluster-init cyclecloud/slurm:execute]]] [[[network-interface eth0]]] AssociatePublicIpAddress = $ExecuteNodesPublic
Catatan
Jika Anda menggunakan komputer Windows, Anda dapat menempelkan konten clipboard dengan menggunakan kombinasi tombol Shift + Insert .
Catatan
Perubahan Anda menentukan nodearray tambahan.
Tugas 2: Menambahkan parameter antarmuka grafis ke templat Azure CycleCloud
Agar bisa mengubah nilai parameter templat dengan antarmuka grafis Azure CycleCloud, Anda akan mengimplementasikan lebih banyak perubahan pada templat.
Di antarmuka editor nano, gulir ke bagian
[[parameters Auto-Scaling]]
dan tambahkan konten berikut langsung sebelum:[[[parameter CUDAMachineType]]] Label = CUDA VM Type Description = The VM type for CUDA execute nodes ParameterType = Cloud.MachineType DefaultValue = Standard_NC24
Gulir ke bagian
[[[parameter HPCMaxScalesetSize]]]
dan tambahkan konten berikut langsung sebelum:[[[parameter MaxCUDAExecuteCoreCount]]] Label = Max CUDA Cores Description = The total number of CUDA execute cores to start DefaultValue = 100 Config.Plugin = pico.form.NumberTextBox Config.MinValue = 0 Config.IntegerOnly = true
Gulir ke bagian
[[[parameter SchedulerClusterInitSpecs]]]
dan tambahkan konten berikut langsung sebelum:[[[parameter CUDAImageName]]] Label = CUDA OS ParameterType = Cloud.Image Config.OS = linux DefaultValue = cycle.image.centos7 Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu18"}
Gulir ke bagian
[[parameters Advanced Networking]]
dan tambahkan konten berikut langsung sebelum:[[[parameter CUDAClusterInitSpecs]]] Label = CUDA Cluster-Init DefaultValue = =undefined Description = Cluster init specs to apply to CUDA execute nodes ParameterType = Cloud.ClusterInitSpecs
Pilih kombinasi tombol Ctrl + O, pilih tombol Enter, lalu pilih kombinasi tombol Ctrl + X untuk menyimpan perubahan yang Anda buat dan menutup file.
Tugas 3: Mengekspor properti kluster Azure CycleCloud
Sebelum menerapkan perubahan konfigurasi yang Anda buat di templat Azure CycleCloud ke kluster target, Anda harus terlebih dahulu mengekspor properti kluster.
Jalankan perintah berikut di Cloud Shell untuk mencantumkan kluster yang ada:
cyclecloud show_cluster
Catatan
Verifikasi bahwa output mencakup entri contoso-custom-slurm-lab-cluster.
Jalankan perintah berikut untuk mengekspor ke dalam file params.json, daftar parameter kluster contoso-custom-slurm-lab-cluster, dan nilainya:
cyclecloud export_parameters contoso-custom-slurm-lab-cluster > ~/params.json
Jalankan perintah berikut untuk meninjau daftar parameter dan nilainya yang sudah diekspor:
cat ~/params.json
Tugas 4: Mengedit file properti agar menyertakan parameter baru
Sementara pengeditan yang Anda terapkan ke templat Azure CycleCloud menyertakan nilai default untuk semua parameter yang baru diperkenalkan, Anda mungkin perlu mengubah parameter untuk memperhitungkan persyaratan tertentu. Dalam tugas ini, Anda akan menetapkan nilai parameter CUDAMachineType dan MaxCUDAExecuteCoreCount.
Jalankan perintah berikut di Cloud Shell untuk membuka file parameter yang diunduh di editor nano:
nano ~/params.json
Di editor nano, gulir ke akhir file dan tambahkan konten berikut dimulai dengan baris baru sebelum kurung kurawal penutup (}):
"CUDAMachineType" : "Standard_NC6", "MaxCUDAExecuteCoreCount" : 60
Tambahkan koma ke akhir baris sebelum baris yang Anda tambahkan di langkah sebelumnya:
"CUDAMachineType" : "Standard_NC6"
Pilih kombinasi tombol Ctrl + O, pilih tombol Enter, lalu pilih kombinasi tombol Ctrl + X untuk menyimpan perubahan yang Anda buat dan menutup file.
Tugas 5: Mengimpor file templat dan parameter yang sudah diubah ke kluster yang ada
Untuk menyimpulkan latihan ini, Anda akan mengimpor templat yang sudah diubah beserta file parameternya ke dalam kluster yang ada dan menimpa konfigurasinya saat ini.
Jalankan perintah berikut di Cloud Shell untuk mengimpor templat yang dimodifikasi dan file parameternya ke dalam kluster yang ada:
cyclecloud import_cluster contoso-custom-slurm-lab-cluster --file ~/cyclecloud-slurm/templates/slurm.txt -p ~/params.json -c Slurm --force
Catatan
Anda harus menentukan nama kluster target dan
--force
bendera untuk menimpa konfigurasi kluster yang ada.Di komputer Anda, buka jendela browser lain dan buka URL https://< IP_address>. Jika diminta, konfirmasi bahwa Anda ingin melanjutkan.
Jika Anda diminta melakukan autentikasi, masuklah dengan memberikan info masuk akun pengguna aplikasi Azure CycleCloud yang sama dengan yang Anda gunakan untuk mengonfigurasi Azure CycleCloud CLI.
Pada antarmuka grafis Azure CycleCloud, masuk ke halaman Kluster. Dalam daftar kluster, pilih entri contoso-custom-slurm-lab-cluster , lalu pilih Edit.
Di jendela sembul Edit contoso-custom-slurm-lab-cluster, pada halaman Tentang, pilih Berikutnya.
Pada halaman Pengaturan yang diperlukan, verifikasi keberadaan entri CUDA VM Type yang ditetapkan ke nilai Standard_NC6 dan opsi penskalaan otomatis terkait:
Selamat! Anda berhasil menyelesaikan latihan kedua modul ini. Dalam latihan ini, Anda telah menyesuaikan kluster Azure CycleCloud lebih lanjut menggunakan templat yang sudah diubah termasuk definisi nodearray baru dengan partisi yang sesuai. Untuk melakukannya, setelah mengedit templat, Anda telah mengekspor dan mengedit file parameter kluster kemudian mengimpornya ke dalam kluster bersama dengan templat yang sudah diubah.
Catatan
Jangan hapus sumber daya yang Anda sebarkan dan konfigurasikan dalam latihan ini jika Anda berencana untuk menjalankan latihan berikutnya. Sumber daya ini diperlukan untuk menyelesaikan latihan berikutnya.