Membuat cluster Slurm HPC yang mendukung RDMA dengan instance H4D

Halaman ini menjelaskan cara membuat cluster Slurm Komputasi Performa Tinggi (HPC) yang menggunakan akses memori langsung jarak jauh (RDMA) dengan jenis mesin H4D. Anda menggunakan gcloud CLI dan Cluster Toolkit untuk mengonfigurasi cluster.

Seri mesin H4D dirancang khusus untuk memenuhi kebutuhan workload HPC yang menuntut. H4D menawarkan instance dengan skalabilitas workload yang ditingkatkan melalui jaringan 200 Gbps yang kompatibel dengan RDMA. Untuk mengetahui informasi selengkapnya tentang jenis mesin H4D yang dioptimalkan untuk komputasi di Google Cloud, lihat Seri mesin H4D.

Ringkasan tutorial

Tutorial ini menjelaskan langkah-langkah untuk menyiapkan cluster Slurm yang dioptimalkan untuk HPC menggunakan jenis mesin H4D dengan RDMA. 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, Anda harus mengikuti proses berikut:

  1. Siapkan project Google Cloud dengan izin dan variabel lingkungan yang diperlukan.
  2. Menyiapkan bucket Cloud Storage.
  3. Siapkan Cluster Toolkit.
  4. Beralih ke direktori Cluster Toolkit.
  5. Buat file YAML deployment Slurm.
  6. Menyediakan cluster Slurm menggunakan cetak biru.
  7. Hubungkan ke cluster Slurm.

Sebelum memulai

  1. Minta blok kapasitas yang dicadangkan untuk dua instance H4D dengan masing-masing 192 vCPU.
  2. Pastikan Anda memiliki kuota Filestore yang cukup untuk menyediakan cluster Slurm. Anda memerlukan kapasitas zona minimal 5.120 GiB,khususnya dengan tingkat layanan Filestore Basic SSD.

    Untuk memeriksa kuota Filestore, lihat Quotas & System limits di konsol Google Cloud dan filter tabel untuk hanya menampilkan resource Filestore.

  3. Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  4. Aktifkan Compute Engine, Filestore, Cloud Storage, Service Usage, dan Cloud Resource Manager API:

    Aktifkan API

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 Filestore (SSD Dasar) per region:5.120 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: Dua instance H4D yang dibuat dengan jenis mesin h4d-highmem-192, h4d-standard-192, atau h4d-highmem-192-lssd.
    • Volume Hyperdisk Balanced: 50 GiB untuk setiap instance H4D.

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. Untuk 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 lingkungan

Di Cloud Shell, tetapkan variabel lingkungan berikut untuk digunakan selama sisa tutorial. Variabel lingkungan ini menetapkan nilai placeholder untuk tugas berikut:

  • Mengonfigurasi project Anda dengan nilai yang relevan untuk mengakses instance H4D yang dicadangkan.

  • Menyiapkan bucket Cloud Storage untuk menyimpan modul Cluster Toolkit.

Variabel kapasitas reservasi

export H4D_RESERVATION_PROJECT_ID=H4D_RESERVATION_PROJECT_ID
export H4D_RESERVATION_NAME=H4D_RESERVATION_NAME
export H4D_DEPLOYMENT_NAME=H4D_DEPLOYMENT_NAME
export H4D_REGION=H4D_REGION
export H4D_ZONE=H4D_ZONE
export H4D_DEPLOYMENT_FILE_NAME=H4D_DEPLOYMENT_FILE_NAME

Ganti kode berikut:

  • H4D_RESERVATION_PROJECT_ID - Google Cloud project ID yang diberi blok pemesanan jenis mesin H4D.
  • H4D_RESERVATION_NAME - nama blok pemesanan VM Anda, yang ada di project Anda. Contoh, h4d-highmem-exr.
  • H4D_DEPLOYMENT_NAME - nama unik untuk deployment cluster Slurm Anda. Contoh, h4d-hpc-slurm-cluster-deployment.
  • H4D_REGION - region yang menjalankan blok pemesanan mesin H4D yang dipesan. Contoh, us-central1.
  • H4D_ZONE - zona yang berisi mesin yang dicadangkan. String ini harus berisi region dan zona. Contoh, us-central1-a.
  • H4D_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.

Variabel kapasitas penyimpanan

Buat variabel lingkungan untuk bucket Cloud Storage Anda.

Cluster Toolkit menggunakan blueprint untuk menentukan dan men-deploy cluster VM. Blueprint menentukan satu atau beberapa modul Terraform untuk menyediakan infrastruktur Cloud. Bucket ini digunakan untuk menyimpan cetak biru ini.

export GOOGLE_CLOUD_BUCKET_NAME=GOOGLE_CLOUD_BUCKET_NAME
export GOOGLE_CLOUD_BUCKET_LOCATION=GOOGLE_CLOUD_BUCKET_LOCATION

Ganti kode berikut:

  • GOOGLE_CLOUD_BUCKET_NAME - nama yang ingin Anda gunakan untuk bucket Cloud Storage yang memenuhi persyaratan penamaan bucket.
  • GOOGLE_CLOUD_BUCKET_LOCATION - Google Cloud region pilihan Anda, tempat bucket akan dihosting. Contohnya, us-central1

Beralih ke project dengan blok kapasitas H4D yang dicadangkan

Jalankan perintah berikut untuk memastikan bahwa Anda berada di project Google Cloud yang memiliki blok reservasi yang disetujui untuk instance H4D.

gcloud config set project ${H4D_RESERVATION_PROJECT_ID}

Membuat bucket Cloud Storage

Buat bucket untuk menyimpan modul Terraform Anda. Dari Cloud Shell, menggunakan variabel lingkungan, jalankan perintah berikut:

Praktik terbaik saat bekerja dengan Terraform adalah menyimpan status dari jarak jauh dalam file yang mendukung versi. Di Google Cloud, Anda dapat membuat bucket Cloud Storage yang mengaktifkan pengelolaan versi.

gcloud storage buckets create gs://${GOOGLE_CLOUD_BUCKET_NAME} \
    --project=${H4D_RESERVATION_PROJECT_ID} \
    --default-storage-class=STANDARD \
    --location=${GOOGLE_CLOUD_BUCKET_LOCATION} \
    --uniform-bucket-level-access

gcloud storage buckets update gs://${GOOGLE_CLOUD_BUCKET_NAME} --versioning

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 Cloud untuk menyederhanakan proses men-deploy workload di Google Cloud.

Gunakan langkah-langkah berikut untuk menyiapkan Cluster Toolkit.

Clone repositori GitHub Cluster Toolkit

  1. Di Cloud Shell, buat clone repositori GitHub:

    git clone https://github.com/GoogleCloudPlatform/cluster-toolkit.git
  2. Buka direktori kerja utama:

    cd cluster-toolkit/

Membangun biner Cluster Toolkit

  1. Di Cloud Shell, bangun biner Cluster Toolkit dari sumber dengan menjalankan perintah berikut:

    make
  2. Untuk memverifikasi build, jalankan perintah berikut:

    Untuk men-deploy cluster Slurm yang dioptimalkan untuk HPC yang menggunakan instance H4D, Anda harus menggunakan Cluster Toolkit versi v1.47.0 atau yang lebih baru.

    ./gcluster --version

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

Membuat file deployment

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

    nano ${H4D_DEPLOYMENT_FILE_NAME}.yaml
    
  2. Tempel konten berikut ke dalam file YAML.

    ---
    terraform_backend_defaults:
      type: gcs
      configuration:
        bucket: GOOGLE_CLOUD_BUCKET_NAME
    
    vars:
      deployment_name: H4D_DEPLOYMENT_FILE_NAME
      project_id: H4D_RESERVATION_PROJECT_ID
      region: H4D_REGION
      zone: H4D_ZONE
      
      
    
  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 blueprint H4D Cluster Toolkit.

Di Cloud Shell, mulai pembuatan cluster.

./gcluster deploy -d ${H4D_DEPLOYMENT_FILE_NAME}.yaml examples/hpc-slurm-h4d.yaml --auto-approve

Hubungkan ke cluster

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

  1. Buka halaman Compute Engine > VM instances di konsolGoogle Cloud .

    Buka instance VM

  2. Temukan node login, yang mungkin memiliki nama seperti example-deployment-login-123.

  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.

Menghapus cluster Slurm

Sebaiknya Anda membersihkan resource saat tidak lagi diperlukan.

Menonaktifkan perlindungan penghapusan

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

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

Ganti:

  • INSTANCE_NAME: nama instance yang ingin Anda edit. Contoh, my-genomics-instance.

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

Setelah menjalankan perintah, temukan instance Filestore yang cocok dengan jenis mesin H4D yang digunakan dalam tutorial ini.

Hancurkan cluster Slurm

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

  2. Untuk menghancurkan cluster, jalankan:

    ./gcluster destroy ${H4D_DEPLOYMENT_FILE_NAME} --auto-approve
    

Setelah penghancuran cluster selesai, Anda akan melihat pesan yang mirip dengan berikut:

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://${GOOGLE_CLOUD_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 telah menyelesaikan tutorial ini secara menyeluruh.

    Untuk mengatasi masalah ini, jalankan kembali tutorial dan pilih nama unik untuk file deployment, lalu jalankan kembali perintah provision the Slurm cluster dengan file deployment baru.

Langkah berikutnya