Halaman ini menunjukkan kepada administrator platform dan engineer machine learning (ML) cara membuat cluster Cluster Director yang diorkestrasi Slurm dan mengonfigurasinya untuk workload Pathways. Dengan menyelesaikan langkah-langkah ini, Anda akan menyediakan cluster dengan slice TPU v6e, node pengontrol CPU, sistem file Google Cloud Managed Lustre bersama, dan lingkungan runtime /home/pathways. Pathways tidak diinstal sebelumnya di
cluster Cluster Director: setelah membuat cluster, Anda mendownload
skrip Pathways ke node login dan menjalankan skrip penyiapan sekali.
Sebelum memulai
-
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
gcloud
Di konsol Google Cloud , aktifkan Cloud Shell.
Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan terbuka dan menampilkan prompt command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi pada sesi.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Sebelum memulai
Sebelum memulai, selesaikan prasyarat berikut:
- Menginstal Google Cloud CLI.
- Aktifkan Hypercompute Cluster API.
- Pastikan akun pengguna Anda dan akun layanan default Compute Engine memiliki peran Identity and Access Management (IAM) yang diperlukan untuk membuat dan terhubung ke cluster Cluster Director. Untuk daftar peran, lihat Sebelum memulai di panduan memulai Cluster Director.
- Buat pemesanan TPU v6e di zona tempat Anda berencana membuat cluster (misalnya, setidaknya empat VM
ct6e-standard-4tuntuk dua slice2x4). - Konfigurasikan
sudotanpa sandi pada node cluster untuk pemulihan slice otomatis. Minta administrator untuk memberi Anda peran Compute OS Admin Login (roles/compute.osAdminLogin) di project. - Buat bucket Cloud Storage untuk data sementara Pathways dan output workload, serta berikan peran Storage Object User (
roles/storage.objectUser) pada project ke akun pengguna Anda dan akun layanan default Compute Engine.
Menyiapkan lingkungan lokal Anda
Login dengan kredensial Google Cloud Anda:
gcloud auth login
Tentukan variabel lingkungan berikut dengan nilai yang sesuai untuk workload Anda:
export PROJECT=PROJECT_ID export REGION=REGION export ZONE=ZONE export CLUSTER_ID=CLUSTER_ID export RESERVATION_NAME=RESERVATION_NAME
Ganti kode berikut:
PROJECT_ID:Google Cloud project ID Anda.REGION: region tempat Anda membuat resource.ZONE: zona tempat Anda membuat resource.CLUSTER_ID: nama cluster. Nama dapat berisi hingga 10 karakter dan hanya boleh menggunakan angka dan huruf kecil.RESERVATION_NAME: nama pemesanan TPU v6e Anda diZONE.
Membuat cluster Cluster Director
Dalam contoh berikut, Anda membuat cluster dengan dua slice 2x4 TPU v6e
(empat VM ct6e-standard-4t) dari pemesanan Anda, dan satu node CPU untuk
pengontrol Pathways. Semua node memasang sistem file Managed Lustre bersama di /home. Untuk mengetahui informasi selengkapnya tentang kolom dalam definisi cluster, lihat Membuat cluster kustom.
Buat cluster menggunakan REST API:
Buat isi permintaan:
cat <<EOF > "${CLUSTER_ID}_create.json" { "networkResources": { "net": { "config": { "newNetwork": { "network": "projects/${PROJECT}/global/networks/${CLUSTER_ID}-net" } } } }, "storageResources": { "home": { "config": { "newLustre": { "lustre": "projects/${PROJECT}/locations/${ZONE}/instances/${CLUSTER_ID}-lustre", "filesystem": "lustre", "capacityGb": "18000", "perUnitStorageThroughput": "500" } } } }, "computeResources": { "crtpu": { "config": { "newReservedInstances": { "reservation": "projects/${PROJECT}/zones/${ZONE}/reservations/${RESERVATION_NAME}" } } }, "crcpu": { "config": { "newOnDemandInstances": { "zone": "${ZONE}", "machineType": "n2-highmem-32" } } } }, "orchestrator": { "slurm": { "loginNodes": { "count": "1", "zone": "${ZONE}", "machineType": "n2-standard-16", "enableOsLogin": true, "enablePublicIps": true, "bootDisk": { "type": "pd-balanced", "sizeGb": "100" }, "storageConfigs": [ { "id": "home", "localMount": "/home" } ] }, "nodeSets": [ { "id": "nstpu", "computeId": "crtpu", "staticNodeCount": "4", "maxDynamicNodeCount": "0", "enablePublicIps": true, "resourcePolicyConfig": { "acceleratorTopology": "2x4" }, "computeInstance": { "bootDisk": { "type": "hyperdisk-balanced", "sizeGb": "100" } }, "storageConfigs": [ { "id": "home", "localMount": "/home" } ] }, { "id": "nscpu", "computeId": "crcpu", "staticNodeCount": "1", "maxDynamicNodeCount": "0", "enablePublicIps": true, "computeInstance": { "bootDisk": { "type": "pd-balanced", "sizeGb": "100", "image": "projects/clusterdirector-public-images/global/images/family/tpu-v6e-v5p-ubuntu2204-slurm2605-v20260902" } }, "storageConfigs": [ { "id": "home", "localMount": "/home" } ] } ], "partitions": [ { "id": "tpu", "nodeSetIds": ["nstpu"] }, { "id": "cpu", "nodeSetIds": ["nscpu"] } ], "defaultPartition": "tpu", "config": { "requeueExitCodes": [1, 2, 134, 137, 139, 143] } } } } EOFKemudian, kirim permintaan:
curl -s -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -d @"${CLUSTER_ID}_create.json" \ "https://hypercomputecluster.googleapis.com/v1alpha/projects/${PROJECT}/locations/${REGION}/clusters?clusterId=${CLUSTER_ID}"Cluster ini mencakup:
- Partisi
tpu: nodeset statis VM TPU v6e yang dipesan.staticNodeCountadalah jumlah VM, danacceleratorTopologyadalah topologi setiap slice. Setiap VMct6e-standard-4tmemiliki empat chip, sehingga slice2x4memiliki dua VM. Untuk lebih banyak slice, kalikan: dua slice2x4memerlukanstaticNodeCountsebesar4. - Partisi
cpu: satu VM on-demand yang menjalankan pengelola resource Pathways, server proxy IFRT, dan klien MaxText. Skrip Pathways mengirimkan tugas ke partisi bernamacpu. VM menggunakan jenis mesinn2-highmem-32karena layanan Pathways dan MaxText bersama-sama memerlukan memori hingga 240 GB saat menyimpan checkpoint. VM ini juga menggunakan image dengan Slurm 26.05, yang mendukung slice TPU, karena layanan Pathways mengirimkan tugas worker TPU dari VM ini. requeueExitCodes: Slurm mengantrekan ulang tugas yang keluar dengan salah satu kode ini. Setelan ini memungkinkan Slurm memulai ulang tugas worker TPU saat VM apa pun dalam slice di-preempt, bukan hanya VM pertama.
- Partisi
Tunggu hingga cluster siap. Anda dapat mengikuti progresnya di halaman Cluster Director di konsol Google Cloud , atau memeriksa apakah
reconcilingadalahfalsedalam output perintah berikut:curl -s \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://hypercomputecluster.googleapis.com/v1alpha/projects/${PROJECT}/locations/${REGION}/clusters/${CLUSTER_ID}"
Menyiapkan lingkungan Pathways
Lingkungan Pathways berada di /home/pathways pada sistem file bersama, sehingga
Anda menyiapkannya sekali per cluster. Image ini berisi image container Pathways, lingkungan Python dengan JAX dan pathwaysutils, serta skrip Pathways.
Hubungkan ke node login. Untuk cara lain dalam menghubungkan, lihat Menghubungkan ke cluster.
gcloud compute ssh ${CLUSTER_ID}-login-001 \ --project=${PROJECT} \ --zone=${ZONE} \ --tunnel-through-iapPastikan partisi
cpudantpuada dan dalam statusidle:sinfo -o "%P %a %D %T %N %f"Outputnya mirip dengan hal berikut ini:
PARTITION AVAIL NODES STATE NODELIST FEATURES tpu* up 4 idle ${CLUSTER_ID}-nstpu-[0-3] cpu up 1 idle ${CLUSTER_ID}-nscpu-0Download skrip Pathways ke node login:
mkdir -p ~/pathways-scripts && cd ~/pathways-scripts for f in setup_env.sh start_pathways.sh run_worker_slice.sh run_maxtext.sh; do curl -fsSLO "https://raw.githubusercontent.com/GoogleCloudPlatform/slurm-gcp/tpu-2605/pathways/scripts/${f}" donePerintah ini mendownload skrip berikut:
setup_env.sh: melakukan penyiapan satu kali untuk lingkungan Pathways.start_pathways.sh: memulai layanan Pathways.run_worker_slice.sh: memulai worker Pathways untuk satu slice TPU (dikirim olehstart_pathways.sh).run_maxtext.sh: menjalankan contoh workload pelatihan MaxText.
Jalankan skrip penyiapan. Proses ini memerlukan waktu sekitar 5 menit:
chmod +x *.sh ./setup_env.shSkrip ini mengambil image server dan proxy Pathways, membangun lingkungan Python dengan JAX,
pathwaysutils, dan MaxText, menyalin skrip ke/home/pathways, dan menautkan~/pathwayske/home/pathways. Output-nya diakhiri dengan output yang mirip dengan berikut ini:Environment ready: JAX 0.11.1Opsional: Untuk memberi pengguna cluster lain akses ke lingkungan Pathways, minta mereka menautkan
/home/pathwayske direktori beranda mereka:ln -sfn /home/pathways ~/pathways
Pada tahap ini, cluster sudah siap untuk Pathways. Anda memulai layanan Pathways sebagai bagian dari menjalankan workload, karena workload batch dan interaktif memulainya dengan setelan yang berbeda. Untuk mengetahui informasi selengkapnya, lihat Menjalankan workload batch dengan Pathways dan Menjalankan workload interaktif dengan Pathways.
Jika Anda mengalami masalah, lihat Memecahkan masalah Pathways di Cloud.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan di halaman ini, hapus cluster Cluster Director setelah Anda selesai:
curl -s -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://hypercomputecluster.googleapis.com/v1alpha/projects/${PROJECT}/locations/${REGION}/clusters/${CLUSTER_ID}"
Langkah berikutnya
- Menjalankan workload batch dengan Pathways
- Menjalankan workload interaktif dengan Pathways
- Pelatihan yang tangguh dengan Pathways
- Mem-porting workload JAX ke Pathways
- Memecahkan masalah Pathways di Cloud