Membuat cluster Slurm yang dikelola sendiri dengan VM A4

Halaman ini menjelaskan cara membuat dan men-deploy cluster Slurm yang dioptimalkan AI dengan cepat menggunakan jenis mesin yang dioptimalkan akselerator A4 dengan gcloud CLI dan Cluster Toolkit.

Jenis mesin yang dioptimalkan akselerator A4 dilengkapi dengan GPU NVIDIA B200 terpasang dan dirancang khusus untuk komputasi AI intensif guna membantu cluster Slurm Anda menangani pelatihan model dan inferensi skala besar secara efisien. Untuk mengetahui informasi selengkapnya tentang jenis mesin yang dioptimalkan akselerator A4 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 dikelola sepenuhnya dengan dua VM A4.


Untuk mengikuti panduan langkah demi langkah untuk tugas ini langsung di Google Cloud konsol, klik Pandu saya:

Pandu saya


Ringkasan tutorial

Tutorial ini menjelaskan langkah-langkah untuk menyiapkan cluster Slurm yang dioptimalkan AI menggunakan jenis mesin yang dioptimalkan akselerator A4. Secara khusus, Anda menyiapkan cluster dengan mesin virtual 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, Anda mengikuti proses ini:

  1. Menyiapkan project Google Cloud Anda dengan izin yang diperlukan untuk panduan ini dan variabel lingkungan untuk memesan mesin Anda.
  2. Membuat bucket Cloud Storage.
  3. Menyiapkan variabel lingkungan penyimpanan Anda.
  4. Menyiapkan Cluster Toolkit.
  5. Beralih ke direktori Cluster Toolkit.
  6. Membuat file YAML deployment Slurm.
  7. Menyediakan cluster Slurm menggunakan blueprint.
  8. Menghubungkan ke cluster Slurm.

Sebelum memulai

  1. Pesan blok kapasitas atau buat pemesanan mode kalender untuk satu a4-highgpu-8g mesin.
  2. Pastikan Anda memiliki kuota Filestore yang cukup untuk menyediakan cluster Slurm. Anda memerlukan kapasitas zona minimal 10.240 GiB (juga dikenal sebagai kapasitas SSD skala tinggi).

    Untuk memeriksa kuota Filestore Anda, lihat Kuota & Batas sistem di Google Cloud konsol dan filter tabel agar hanya menampilkan resource Filestore.

  3. Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  4. Aktifkan Compute Engine, Filestore, Cloud Storage, Penggunaan Layanan, dan Cloud Resource Manager API:

    Aktifkan API

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk men-deploy cluster Slurm, minta administrator Anda untuk memberi Anda peran IAM berikut:

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 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 Filestore (standar) per region: 10.240 GiB.
    • Persistent disk standar: 50 GB pd-standard untuk node login Slurm.
    • Persistent disk performa (SSD): 50 GB pd-ssd untuk pengontrol Slurm.
    • Instance VM: 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 sebelumnya dengan Google Cloud CLI. gcloud CLI menyediakan antarmuka command line utama untuk Google Cloud. Meluncurkan Cloud Shell:

  1. Buka konsol Google Cloud .

    Google Cloud console

  2. Dari pojok kanan atas konsol, klik tombol Activate Cloud Shell: Ikon Cloud Shell

Sesi Cloud Shell akan dimulai dan menampilkan perintah 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 dipesan.

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: project ID yang diberi blok pemesanan jenis mesin A4. Google Cloud
  • A4_RESERVATION_NAME: nama pemesanan GPU yang digunakan di project Anda. Misalnya, a4high-exr.
  • A4_DEPLOYMENT_NAME: nama unik untuk deployment cluster Slurm Anda. Misalnya, my-slurm-cluster-deployment.
  • A4_REGION: region yang menjalankan blok pemesanan mesin A4 yang dipesan. Misalnya, us-central1.
  • A4_ZONE: zona yang berisi mesin yang dipesan. String ini harus berisi region dan zona. Misalnya, 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 A4

Beralih ke Google Cloud project 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 Anda ke resource Anda di cloud. Untuk mempertahankan catatan infrastruktur Anda yang andal, sebaiknya simpan file status Terraform Anda di lokasi jarak jauh yang mendukung versi, seperti bucket Cloud Storage dengan versi yang diaktifkan.

Untuk menyimpan file status Anda, 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: project ID yang diberi blok pemesanan jenis mesin A4. Google Cloud
  • BUCKET_LOCATION: Google Cloud region tempat membuat bucket Cloud Storage Anda, seperti us-central1. Terraform menyimpan file status Anda di lokasi ini.

Menetapkan variabel kapasitas penyimpanan

Di Cloud Shell, buat variabel lingkungan untuk bucket yang Anda buat pada 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 Google Cloud project, Anda dapat menggunakan Cluster Toolkit untuk menangani deployment dan penyediaan cluster. Cluster Toolkit adalah software open source yang ditawarkan oleh Google Cloud untuk 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 yang telah dibuat sebelumnya untuk platform Anda. Arsip ZIP dan tar (.tgz) tersedia.

  1. Buka halaman rilis Cluster Toolkit di GitHub.
  2. Download paket yang sesuai dengan platform dan arsitektur Anda. Opsi berikut tersedia:
    • gcluster_bundle_linux_amd64.zip atau gcluster_bundle_linux_amd64.tgz
    • gcluster_bundle_linux_arm64.zip atau gcluster_bundle_linux_arm64.tgz
    • gcluster_bundle_mac_amd64.zip atau gcluster_bundle_mac_amd64.tgz
    • gcluster_bundle_mac_arm64.zip atau gcluster_bundle_mac_arm64.tgz
  3. Di terminal Anda, 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_FILENAME dengan nama paket yang Anda download.

  4. Buka direktori baru:
    cd cluster-toolkit
  5. Verifikasi penginstalannya:
    ./gcluster --version

    Output menunjukkan versi Cluster Toolkit saat ini yang Anda gunakan.

Setelah menginstal biner, Anda kini siap men-deploy cluster untuk menjalankan tugas atau workload Anda.

Membuat file deployment

  1. Di direktori Cluster Toolkit, buat file YAML deployment Slurm Anda.

    nano ${A4_DEPLOYMENT_FILE_NAME}.yaml
    
  2. Tempelkan 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: 1
    
  3. Untuk 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 yang telah dibuat sebelumnya. Untuk mempelajari lebih lanjut driver dan alat konfigurasi yang telah diinstal sebelumnya yang Anda deploy, lihat Ringkasan Advanced Compute Images.

Di Cloud Shell, mulai pembuatan cluster.

./gcluster deploy -d ${A4_DEPLOYMENT_FILE_NAME}.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve

Menghubungkan ke cluster

Setelah men-deploy, hubungkan ke Google Cloud konsol untuk melihat cluster Anda.

  1. Buka halaman Compute Engine > VM instances di Google Cloud konsol.

    Buka instance VM

  2. Temukan node login (a4high-login-001 atau yang serupa).

  3. 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.

Secara default, blueprint A4 High mengaktifkan proteksi dari penghapusan pada instance Filestore. Saat menghancurkan cluster Slurm, Anda harus menonaktifkan proteksi dari penghapusan sebelum menjalankan perintah penghancuran.

Menonaktifkan proteksi dari penghapusan

Untuk menonaktifkan proteksi dari penghapusan saat Anda memperbarui instance, gunakan perintah seperti berikut:

  gcloud filestore instances update INSTANCE_NAME \
      --no-deletion-protection

Ganti INSTANCE_NAME dengan nama instance yang ingin Anda edit. Misalnya, my-genomics-instance.

Untuk menemukan INSTANCE_NAME, Anda dapat menjalankan gcloud filestore instances list. Perintah ini mencantumkan semua instance Filestore di project Google Cloud Anda saat ini, termasuk nama, lokasi (zona), tingkat, kapasitas, dan statusnya.

Setelah menjalankan perintah, temukan instance Filestore yang cocok dengan mesin a4-highgpu-8g yang berjalan dalam tutorial ini.

Menghancurkan cluster Slurm

  1. Sebelum menjalankan perintah penghancuran, buka root direktori Cluster Toolkit. Secara default, DEPLOYMENT_FOLDER terletak di root direktori Cluster Toolkit.

  2. Hancurkan cluster:

    ./gcluster destroy DEPLOYMENT_FOLDER --auto-approve

    Ganti DEPLOYMENT_FOLDER dengan nama folder deployment. Biasanya sama dengan DEPLOYMENT_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 sering menggunakan Cloud Shell dan 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 penyediaan cluster Slurm dengan file deployment baru.

Langkah berikutnya