Membuat cluster Slurm yang dikelola sendiri dengan VM A4
Halaman ini menjelaskan cara membuat dan men-deploy cluster Slurm yang dioptimalkan untuk AI dengan cepat menggunakan jenis mesin yang dioptimalkan untuk akselerator A4 dengan gcloud CLI dan Cluster Toolkit.
Jenis mesin yang dioptimalkan akselerator A4 dilengkapi dengan GPU NVIDIA B200 yang terpasang dan dirancang khusus untuk komputasi AI intensif guna membantu cluster Slurm Anda menangani pelatihan dan inferensi model berskala besar secara efisien. Untuk mengetahui informasi selengkapnya tentang jenis mesin yang dioptimalkan akselerator A4 di Google Cloud, lihat Jenis mesin GPU.
Atau, Anda dapat menggunakan Cluster Director untuk membuat cluster Slurm berbasis A4. Cluster Director adalah layanan terkelola yang menyederhanakan dan mengotomatiskan deployment cluster, sehingga mengurangi overhead operasional. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster Slurm yang terkelola sepenuhnya dengan dua VM A4.
Ringkasan tutorial
Tutorial ini menjelaskan langkah-langkah untuk menyiapkan cluster Slurm yang dioptimalkan AI menggunakan jenis mesin yang dioptimalkan akselerator A4. Secara khusus, Anda akan menyiapkan cluster dengan virtual machine Compute Engine, membuat bucket Cloud Storage untuk menyimpan modul Terraform yang diperlukan, dan menyiapkan instance Filestore untuk menyediakan cluster Slurm Anda. Untuk menyelesaikan langkah-langkah dalam tutorial ini, ikuti proses berikut:
- Siapkan project Google Cloud dengan izin yang diperlukan untuk panduan ini dan variabel lingkungan untuk memesan mesin Anda.
- Membuat bucket Cloud Storage.
- Siapkan variabel lingkungan penyimpanan Anda.
- Menyiapkan Cluster Toolkit.
- Beralih ke direktori Cluster Toolkit.
- Buat file YAML deployment Slurm.
- Menyediakan cluster Slurm menggunakan blueprint.
- Hubungkan ke cluster Slurm.
Sebelum memulai
- Pesan blok kapasitas atau buat pemesanan mode kalender untuk satu mesin
a4-highgpu-8g. Pastikan Anda memiliki kuota Managed Lustre yang cukup (minimal kuota kapasitas penyimpanan 36.000 GiB dan kuota throughput 18 GBps) untuk menyediakan resource blueprint.
- Untuk mengetahui petunjuk mendetail tentang cara memeriksa kuota, lihat Melihat kuota khusus API.
Pastikan penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan Compute Engine, Managed Lustre, Service Networking, Cloud Storage, Service Usage, dan Resource Manager API:
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk men-deploy cluster Slurm, minta administrator untuk memberi Anda peran IAM berikut:
- Storage Admin (
roles/storage.admin) di project Anda - Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) pada project Anda - Pengguna Akun Layanan (
roles/iam.serviceAccountUser) di akun layanan itu sendiri -
Untuk menggunakan reservasi project tunggal:
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) pada project Anda -
Untuk menggunakan pemesanan bersama:
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) pada project pemilik dan project konsumen tempat Anda ingin menggunakan pemesanan
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Biaya
Biaya untuk menjalankan tutorial ini bervariasi menurut setiap bagian yang Anda selesaikan, seperti menyiapkan tutorial atau menjalankan tugas. Anda dapat menghitung biaya menggunakan kalkulator harga.
Untuk memperkirakan biaya penyiapan tutorial ini, gunakan spesifikasi berikut:
- Kapasitas Managed Lustre: 36.000 GiB pada tingkat performa 500 MBps per TiB. Harga Managed Lustre bergantung pada kapasitas penyimpanan dan paket performa yang dikonfigurasi.
- Persistent disk standar: 50 GB
pd-standarduntuk node login Slurm. - Persistent disk performa (SSD): 50 GB
pd-ssduntuk pengontrol Slurm. - Instance Compute Engine: 1
a4-highgpu-8g.
Meluncurkan Cloud Shell
Dalam tutorial ini, Anda akan menggunakan Cloud Shell, yang merupakan lingkungan shell untuk mengelola resource yang dihosting di Google Cloud.
Cloud Shell telah diinstal lebih dulu dengan Google Cloud CLI. Gcloud CLI menyediakan antarmuka command line utama untuk Google Cloud. Meluncurkan Cloud Shell:
Buka konsol Google Cloud .
Dari pojok kanan atas konsol, klik tombol Activate Cloud Shell:

Sesi Cloud Shell akan dimulai dan menampilkan prompt command line.
Anda menggunakan shell ini untuk menjalankan perintah gcloud dan Cluster Toolkit.
Menetapkan variabel kapasitas pemesanan mesin
Di Cloud Shell, tetapkan variabel lingkungan kapasitas pemesanan berikut. Variabel lingkungan ini menetapkan nilai placeholder untuk mengonfigurasi project Anda agar dapat mengakses mesin a4-highgpu-8g yang direservasi.
export A4_RESERVATION_PROJECT_ID=A4_RESERVATION_PROJECT_ID export A4_RESERVATION_NAME=A4_RESERVATION_NAME export A4_DEPLOYMENT_NAME=A4_DEPLOYMENT_NAME export A4_REGION=A4_REGION export A4_ZONE=A4_ZONE export A4_DEPLOYMENT_FILE_NAME=A4_DEPLOYMENT_FILE_NAME
Ganti kode berikut:
A4_RESERVATION_PROJECT_ID: Google Cloud project ID yang diberi blok pemesanan jenis mesin A4.A4_RESERVATION_NAME: nama pemesanan GPU yang digunakan dalam project Anda. Contoh,a4high-exr.A4_DEPLOYMENT_NAME: nama unik untuk deployment cluster Slurm Anda. Contoh,my-slurm-cluster-deployment.A4_REGION: region yang menjalankan blok pemesanan mesin A4 yang dipesan. Contoh,us-central1.A4_ZONE: zona yang berisi mesin yang dipesan. String ini harus berisi region dan zona. Contoh,us-central1-a.A4_DEPLOYMENT_FILE_NAME: nama unik untuk file YAML blueprint Slurm Anda. Jika Anda menjalankan tutorial ini lebih dari sekali, pilih nama deployment yang unik setiap kali.
Beralih ke project yang disetujui untuk A4
Beralih ke project Google Cloud yang memiliki blok pemesanan yang disetujui untuk jenis mesin A4:
gcloud config set project ${A4_RESERVATION_PROJECT_ID}Membuat bucket Cloud Storage
Saat Anda men-deploy blueprint dan modulnya, Terraform akan membuat file status yang memetakan blueprint ke resource Anda di cloud. Untuk mempertahankan data infrastruktur yang andal, sebaiknya simpan file status Terraform Anda di lokasi jarak jauh yang mendukung versi, seperti bucket Cloud Storage dengan pembuatan versi diaktifkan.
Untuk menyimpan state file, buat bucket Cloud Storage dengan pembuatan versi yang diaktifkan dari Cloud Shell:
gcloud storage buckets create gs://${BUCKET_NAME} \
--project=${A4_RESERVATION_PROJECT_ID} \
--default-storage-class=STANDARD \
--location=${BUCKET_LOCATION} \
--uniform-bucket-level-access
gcloud storage buckets update gs://${BUCKET_NAME} --versioning
Ganti kode berikut:
BUCKET_NAME: nama bucket Cloud Storage baru, yang harus memenuhi persyaratan penamaan bucket.A4_RESERVATION_PROJECT_ID: Google Cloud project ID yang diberi blok pemesanan jenis mesin A4.BUCKET_LOCATION: region Google Cloudtempat membuat bucket Cloud Storage, sepertius-central1. Terraform menyimpan state file Anda di lokasi ini.
Menetapkan variabel kapasitas penyimpanan
Di Cloud Shell, buat variabel lingkungan untuk bucket yang Anda buat di langkah sebelumnya.
export BUCKET_NAME=BUCKET_NAME export BUCKET_LOCATION=BUCKET_LOCATION
Ganti kode berikut:
BUCKET_NAME: nama bucket Anda.BUCKET_LOCATION: region tempat bucket Anda berada.
Menyiapkan Cluster Toolkit
Untuk membuat cluster Slurm di project Google Cloud , Anda dapat menggunakan Cluster Toolkit untuk menangani deployment dan penyediaan cluster. Cluster Toolkit adalah software open source yang ditawarkan oleh Google Clouduntuk menyederhanakan proses deployment workload di Google Cloud.
Gunakan langkah-langkah berikut untuk menyiapkan Cluster Toolkit.
Menginstal Cluster Toolkit
Untuk menginstal Cluster Toolkit, download dan ekstrak paket biner bawaan untuk platform Anda. Arsip ZIP dan tar (.tgz) tersedia.
- Buka halaman rilis Cluster Toolkit di GitHub.
- Download paket yang sesuai dengan platform dan arsitektur Anda. Tersedia
opsi-opsi berikut:
gcluster_bundle_linux_amd64.zipataugcluster_bundle_linux_amd64.tgzgcluster_bundle_linux_arm64.zipataugcluster_bundle_linux_arm64.tgzgcluster_bundle_mac_amd64.zipataugcluster_bundle_mac_amd64.tgzgcluster_bundle_mac_arm64.zipataugcluster_bundle_mac_arm64.tgz
- Di terminal, ekstrak file paket ke direktori baru:
-
Jika Anda mendownload paket ZIP, ekstrak file menggunakan perintah
unzip:unzip BUNDLE_FILENAME -d cluster-toolkit
-
Jika Anda mendownload paket tar, ekstrak file menggunakan perintah
tar:mkdir -p cluster-toolkit tar -xzf BUNDLE_FILENAME -C cluster-toolkit
Ganti
BUNDLE_FILENAMEdengan nama paket yang Anda download. -
- Buka direktori baru:
cd cluster-toolkit
- Verifikasi penginstalannya:
./gcluster --version
Output akan menampilkan versi Cluster Toolkit saat ini yang Anda gunakan.
Setelah menginstal biner, Anda kini siap men-deploy cluster untuk menjalankan tugas atau workload.
Membuat file deployment
Di direktori Cluster Toolkit, buat file YAML deployment Slurm Anda.
nano ${A4_DEPLOYMENT_FILE_NAME}.yamlTempelkan konten berikut ke dalam file YAML.
--- terraform_backend_defaults: type: gcs configuration: bucket: BUCKET_NAME vars: deployment_name: A4_DEPLOYMENT_FILE_NAME project_id: A4_RESERVATION_PROJECT_ID region: A4_REGION zone: A4_ZONE a4h_reservation_name: A4_RESERVATION_NAME a4h_cluster_size: 1Untuk menyimpan dan keluar dari file, tekan Ctrl+O > Enter > Ctrl+X.
Menyediakan cluster Slurm
Untuk menyediakan cluster Slurm, jalankan perintah deployment berikut. Perintah ini menyediakan cluster Slurm dengan file blueprint examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml.
Secara default, blueprint ini men-deploy instance komputasi (Compute Engine instances)
yang menggunakan Advanced Compute Images bawaan.
Untuk mempelajari lebih lanjut driver dan alat konfigurasi yang telah diinstal sebelumnya yang Anda deploy, lihat Ringkasan Advanced Compute Images.
Di Cloud Shell, gunakan perintah gcluster deploy untuk memulai pembuatan cluster.
./gcluster deploy -d ${A4_DEPLOYMENT_FILE_NAME}.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
Hubungkan ke cluster
Setelah men-deploy, hubungkan ke konsol Google Cloud untuk melihat cluster Anda.
Buka halaman Compute Engine > VM instances di konsolGoogle Cloud .
Temukan node login (
a4high-login-001atau yang serupa).Klik SSH untuk terhubung.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
Menghancurkan cluster Slurm
Sebaiknya bersihkan resource Anda jika tidak lagi diperlukan. Saat Anda menghancurkan cluster Slurm, semua resource yang disediakan akan dihapus, termasuk instance Managed Lustre dan semua data yang disimpan di dalamnya.
Sebelum menjalankan perintah destroy, buka root direktori Cluster Toolkit. Secara default,
DEPLOYMENT_FOLDERterletak di root direktori Cluster Toolkit.Gunakan perintah
gcluster destroyuntuk menghancurkan cluster:./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
Ganti
DEPLOYMENT_FOLDERdengan nama folder deployment. Biasanya sama denganDEPLOYMENT_NAME.
Setelah penghancuran selesai, Anda akan melihat pesan yang mirip dengan berikut ini:
Destroy complete! Resources: xx destroyed.
Menghapus bucket penyimpanan
Hapus bucket Cloud Storage setelah Anda memastikan bahwa perintah sebelumnya berakhir tanpa error:
gcloud storage buckets delete gs://${BUCKET_NAME}
Pemecahan masalah
Error: Cloud Shell tidak dapat menyediakan cluster karena tidak ada penyimpanan yang tersisa.
Anda mungkin melihat error ini jika Anda adalah pengguna Cloud Shell yang sering dan telah kehabisan ruang penyimpanan.
Untuk mengatasi masalah ini, lihat Menonaktifkan atau mereset Cloud Shell.
Error: Nama cluster atau blueprint sudah ada.
Anda mungkin melihat error ini jika menggunakan project yang telah menggunakan nama file yang sama persis dengan yang digunakan dalam tutorial ini. Misalnya, jika orang lain di organisasi Anda menjalankan tutorial ini secara menyeluruh.
Untuk mengatasi masalah ini, jalankan kembali tutorial dan pilih nama unik untuk file deployment, lalu jalankan kembali perintah menyediakan cluster Slurm dengan file deployment baru.
Langkah berikutnya
- Tugas Slurm lanjutan:
- Pelajari cara mengelola acara host:
- Melihat topologi instance komputasi
- Memantau instance Compute Engine dan cluster Slurm
- Melaporkan host yang rusak