Menggunakan VM Flex Start dengan cluster Slurm

Panduan ini memberikan petunjuk untuk mengonfigurasi dan menggunakan VM Flex Start dengan Slurm di Gemini Enterprise Agent Platform. Integrasi ini memungkinkan Anda menggunakan model penyediaan VM yang fleksibel untuk workload pelatihan Anda.

Konfigurasi dan pembuatan cluster

Sebelum menentukan konfigurasi cluster, Anda harus menyelesaikan langkah prasyarat satu kali berikut terlebih dahulu untuk memastikan akun layanan yang diperlukan diberi otorisasi untuk mengelola resource Mulai Fleksibel.

Memverifikasi izin untuk Agen Layanan Google API

  • Konteks: Slurm di Gemini Enterprise Agent Platform menggunakan grup instance terkelola untuk menyediakan instance VM Flex Start secara dinamis dan mengelola siklus prosesnya. Agen Layanan Google API membuat dan mengelola resource Compute Engine yang mendasarinya untuk grup instance terkelola. Seperti yang dijelaskan dalam dokumentasi Managed Instance Group dan IAM, akun layanan ini memerlukan izin untuk membuat, menghapus, dan mencantumkan instance VM, serta izin untuk melampirkan identitas akun layanan ke instance VM tersebut.
  • Tindakan: Periksa apakah Agen Layanan Google API Anda (PROJECT_NUMBER@cloudservices.gserviceaccount.com) sudah memiliki peran Editor (roles/editor).
    • Jika "ya": Anda mungkin tidak perlu melakukan tindakan lebih lanjut. Peran Editor biasanya mencakup semua izin yang diperlukan.
    • Jika "tidak": Jika peran Editor default tidak diberikan, Anda harus memberikan peran berikut secara eksplisit untuk memastikan MIG dapat berfungsi:
      • Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) - Diperlukan untuk membuat, mencantumkan, dan menghapus instance VM.
      • Pengguna Akun Layanan (roles/iam.serviceAccountUser) - Diperlukan untuk melampirkan akun layanan ke VM baru.

Membuat cluster Slurm dengan model penyediaan Flex Start

Untuk membuat cluster Slurm yang menggunakan model penyediaan Mulai Fleksibel, Anda harus menentukan provisioning_model dalam konfigurasi node pool spesifikasi cluster saat mengirimkan permintaan pembuatan cluster menggunakan API.

Contoh Cuplikan Konfigurasi: Simpan konfigurasi JSON berikut ke file bernama cluster_config.json. Contoh ini secara eksplisit menggunakan slurm_spec. Ganti placeholder (misalnya, <project-id>, <region>, <zone>) dengan nilai sebenarnya.

{
  "display_name": "flexvm",
  "name": "projects/<project-id>/locations/<region>/modelDevelopmentClusters/",
  "network": {
    "network": "projects/<project-id>/global/networks/default",
    "subnetwork": "projects/<project-id>/regions/<region>/subnetworks/default"
  },
  "node_pools": [
    {
      "id": "login",
      "machine_spec": { "machine_type": "n2-standard-8" },
      "scaling_spec": { "min_node_count": 1, "max_node_count": 1 },
      "enable_public_ips": "true",
      "zone": "<zone>",
      "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 }
    },
    {
      "id": "a3u",
      "machine_spec": {
        "machine_type": "a3-ultragpu-8g",
        "accelerator_type": "NVIDIA_H200_141GB",
        "accelerator_count": 8
      },
      "provisioning_model": "FLEX_START",
      "flex_start_max_duration": "604800s",
      "scaling_spec": { "min_node_count": 0, "max_node_count": 2 },
      "zone": "<zone>",
      "enable_public_ips": "true",
      "boot_disk": { "boot_disk_type": "hyperdisk-balanced", "boot_disk_size_gb": 400 }
    }
  ],
  "orchestrator_spec": {
    "slurm_spec": {
      "home_directory_storage": "projects/<project-id>/locations/<zone>/instances/<filestore-id>",
      "partitions": [ { "id": "a3u", "node_pool_ids": [ "a3u" ] } ],
      "login_node_pool_id": "login"
    }
  }
}

Ikuti langkah-langkah di Membuat cluster Slurm untuk mengautentikasi dan mengirimkan permintaan.

Durasi Mulai Fleksibel Maksimum: Anda dapat secara opsional menetapkan durasi berjalan maksimum untuk instance Mulai Fleksibel. Gunakan kolom flex_start_max_duration dalam konfigurasi node pool Anda, dengan menentukan nilai sebagai string dalam detik, yang ditambahkan dengan "s" (misalnya, "172800s" untuk 2 hari). Jika tidak ditentukan, sistem akan menetapkan nilai default ke 7 hari.

Siklus proses dan ketahanan operasional

Memahami siklus proses node Flex Start di lingkungan Slurm on Gemini Enterprise Agent Platform sangat penting untuk merencanakan tugas Anda.

Batasan Mulai Fleksibel

Semua VM Flex Start memiliki durasi berjalan maksimum tetap, yang ditentukan oleh setelan flex_start_max_duration.

  • Batas Durasi: Secara default, flex_start_max_duration ditetapkan ke 7 hari. Anda dapat mengganti batas ini dengan menentukan flex_start_max_duration kustom antara 30 detik dan maksimum 7 hari (604.800 detik) dalam konfigurasi node pool agar lebih sesuai dengan runtime tugas yang diharapkan.
  • Penghentian: Jika batas ini tercapai, Compute Engine akan menghentikan instance secara ketat.

Perilaku penskalaan node

Bagian berikut menjelaskan dua strategi penskalaan yang tersedia: statis dan dinamis.

Node statis

Node statis memungkinkan Anda mempertahankan kumpulan resource tetap yang selalu tersedia (misalnya, min_node_count > 0).

  • Penyediaan: Node diminta segera setelah pembuatan atau pengubahan ukuran cluster untuk memenuhi jumlah minimum node.
  • Masa berlaku dan pemulihan: Saat node Flex Start statis mencapai flex_start_max_duration dan dihentikan oleh Compute Engine, sistem akan otomatis mencoba membuat ulang node untuk memulihkan kapasitas cluster yang ditentukan. Siklus ini memastikan kumpulan statis tetap terisi, terlepas dari apakah ada tugas Slurm yang menunggu di node.

Node dinamis

Node dinamis memungkinkan cluster melakukan peningkatan skala hanya saat diperlukan.

  • Penyediaan: Saat tugas diantrekan (memasuki status PENDING), Slurm Scheduler meminta resource dengan membuat grup instance terkelola dan mengeluarkan permintaan pengubahan ukuran.
  • Masa berlaku dan pemulihan: Setelah masa berlaku habis, sistem akan menyediakan node Mulai Fleksibel baru hanya jika ada tugas Slurm yang tertunda di node.

Ketahanan dan perbaikan otomatis cluster

Slurm di Gemini Enterprise Agent Platform memantau kondisi node pada tahap utama siklus proses tugas. Pemeriksaan kondisi dijalankan sebelum tugas dimulai (prolog) dan setelah selesai (epilog) untuk membantu menjaga stabilitas tugas.

  • Penanganan error hardware: Jika layanan mendeteksi masalah hardware kritis (seperti error GPU), layanan ini dirancang untuk otomatis memperbaiki VM yang tidak sehat.
  • Penggantian otomatis: Jika tugas masih dalam status PENDING (atau telah dimasukkan kembali ke PENDING karena kegagalan node), sistem akan otomatis menyediakan instance Flex Start baru untuk menggantikan VM yang tidak responsif. Hal ini memungkinkan workload Anda berjalan di hardware yang berfungsi dengan baik tanpa intervensi manual.