Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
SageMaker HyperPod praktik terbaik konfigurasi siklus hidup
SageMaker HyperPod selalu menawarkan cluster up-and-running komputasi, yang sangat dapat disesuaikan karena Anda dapat menulis skrip siklus hidup untuk memberi tahu SageMaker HyperPod cara mengatur sumber daya cluster. Topik berikut adalah praktik terbaik untuk menyiapkan skrip siklus hidup untuk menyiapkan SageMaker HyperPod cluster dengan alat pengelola beban kerja sumber terbuka.
Mempersiapkan skrip siklus hidup untuk menyiapkan Slurm on SageMaker HyperPod
Topik berikut membahas cara menyiapkan skrip siklus hidup untuk menyiapkan Slurm.
Topik
- Ikhtisar tingkat tinggi
- Mulailah dengan skrip siklus hidup dasar yang disediakan oleh HyperPod
- Konfigurasi tertentu apa yang HyperPod dikelola dalam file konfigurasi Slurm
- Pasang Amazon FSx untuk Lustre ke cluster Anda HyperPod
- Validasi file JSON konfigurasi sebelum membuat cluster Slurm HyperPod
- Validasi runtime sebelum menjalankan beban kerja produksi pada klaster Slurm HyperPod
- Mengembangkan skrip siklus hidup secara interaktif pada node cluster
- Perbarui cluster dengan skrip siklus hidup baru atau yang diperbarui
- Pertimbangan
Ikhtisar tingkat tinggi
Prosedur berikut adalah aliran utama penyediaan HyperPod cluster dan mengaturnya dengan Slurm. Langkah-langkahnya diatur dalam urutan pendekatan bottom-up.
-
Rencanakan bagaimana Anda ingin membuat node Slurm pada sebuah HyperPod cluster. Misalnya, jika Anda ingin mengkonfigurasi dua node Slurm, Anda harus mengatur dua grup instance dalam sebuah HyperPod cluster.
-
Siapkan
provisioning_parameters.json
file, yang merupakan fileFormulir konfigurasi untuk penyediaan node Slurm pada HyperPod.provisioning_parameters.json
harus berisi informasi konfigurasi simpul Slurm untuk disediakan di cluster. HyperPod Ini harus mencerminkan desain node Slurm dari Langkah 1. -
Siapkan satu set skrip siklus hidup untuk menyiapkan Slurm on HyperPod untuk menginstal paket perangkat lunak dan menyiapkan lingkungan di cluster untuk kasus penggunaan Anda. Anda harus menyusun skrip siklus hidup untuk dijalankan secara kolektif dalam skrip Python pusat (
lifecycle_script.py
), dan menulis skrip shell titik masuk () untuk menjalankan skrip Python.on_create.sh
Skrip shell entrypoint adalah apa yang perlu Anda berikan ke permintaan pembuatan HyperPod cluster nanti di Langkah 5.Juga, perhatikan bahwa Anda harus menulis skrip
resource_config.json
yang diharapkan akan dihasilkan oleh HyperPod selama pembuatan cluster.resource_config.json
berisi informasi sumber daya HyperPod cluster seperti alamat IP, jenis instance, danARNs, dan apa yang perlu Anda gunakan untuk mengkonfigurasi Slurm. -
Kumpulkan semua file dari langkah sebelumnya ke dalam folder.
└── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py
-
Unggah semua file ke bucket S3. Salin dan simpan jalur bucket S3. Perhatikan bahwa Anda harus membuat jalur bucket S3 dimulai
sagemaker-
karena Anda harus memilih yang IAMperan untuk SageMaker HyperPod dilampirkanAWS kebijakan terkelola: AmazonSageMakerClusterInstanceRolePolicy, yang hanya mengizinkan jalur bucket Amazon S3 yang dimulai dengan awalan.sagemaker-
Perintah berikut adalah perintah contoh untuk mengunggah semua file ke bucket Amazon S3.aws s3 cp --recursive
./lifecycle_files
s3://sagemaker-hyperpod-lifecycle/src
-
Siapkan permintaan pembuatan HyperPod cluster.
-
Opsi 1: Jika Anda menggunakan AWS CLI, tulis permintaan pembuatan cluster dalam JSON format (
create_cluster.json
) mengikuti instruksi diBuat cluster baru. -
Opsi 2: Jika Anda menggunakan UI SageMaker konsol, isi formulir Buat permintaan klaster di UI HyperPod konsol dengan mengikuti petunjuk diBuat SageMaker HyperPod cluster.
Pada tahap ini, pastikan Anda membuat grup instance dalam struktur yang sama dengan yang Anda rencanakan di Langkah 1 dan 2. Selain itu, pastikan Anda menentukan bucket S3 dari Langkah 5 di formulir permintaan.
-
-
Kirim permintaan pembuatan cluster. HyperPod menyediakan cluster berdasarkan permintaan, dan kemudian membuat
resource_config.json
file dalam instance HyperPod cluster, dan menyiapkan Slurm di cluster yang menjalankan skrip siklus hidup.
Bagian berikut memandu Anda melalui dan menyelami detail tentang cara mengatur file konfigurasi dan skrip siklus hidup agar berfungsi dengan baik selama HyperPod pembuatan klaster.
Mulailah dengan skrip siklus hidup dasar yang disediakan oleh HyperPod
Bagian ini memandu Anda melalui setiap komponen aliran dasar pengaturan Slurm on HyperPod dalam pendekatan top-down. Ini dimulai dari menyiapkan permintaan pembuatan HyperPod cluster untuk menjalankan CreateCluster
API, dan menyelam jauh ke dalam struktur hierarkis hingga skrip siklus hidup. Gunakan contoh skrip siklus hidup yang disediakan di repositori Pelatihan Terdistribusi Awsome
git clone https://github.com/aws-samples/awsome-distributed-training/
Skrip siklus hidup dasar untuk menyiapkan cluster Slurm tersedia di. SageMaker HyperPod 1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
Diagram alur berikut menunjukkan gambaran rinci tentang bagaimana Anda harus mendesain skrip siklus hidup dasar. Deskripsi di bawah diagram dan panduan prosedural menjelaskan cara kerjanya selama panggilan. HyperPod CreateCluster
API
Gambar: Diagram alir rinci pembuatan HyperPod cluster dan struktur skrip siklus hidup. (1) Panah putus-putus diarahkan ke tempat kotak “dipanggil” dan menunjukkan aliran file konfigurasi dan persiapan skrip siklus hidup. Ini dimulai dari mempersiapkan provisioning_parameters.json
dan siklus hidup skrip. Ini kemudian dikodekan lifecycle_script.py
untuk eksekusi kolektif secara berurutan. Dan eksekusi lifecycle_script.py
skrip dilakukan oleh skrip on_create.sh
shell, yang akan dijalankan di terminal HyperPod instance. (2) Panah padat menunjukkan aliran pembuatan HyperPod cluster utama dan bagaimana kotak “dipanggil” atau “diserahkan ke”. on_create.sh
diperlukan untuk permintaan pembuatan cluster, baik di dalam create_cluster.json
atau formulir Create a cluster request di UI konsol. Setelah Anda mengirimkan permintaan, HyperPod jalankan CreateCluster
API berdasarkan informasi konfigurasi yang diberikan dari permintaan dan skrip siklus hidup. (3) Panah putus-putus menunjukkan bahwa HyperPod platform membuat resource_config.json
dalam instance cluster selama penyediaan sumber daya cluster. resource_config.json
berisi informasi sumber daya HyperPod cluster seperti clusterARN, tipe instance, dan alamat IP. Penting untuk dicatat bahwa Anda harus menyiapkan skrip siklus hidup untuk mengharapkan resource_config.json
file selama pembuatan cluster. Untuk informasi lebih lanjut, lihat panduan prosedural di bawah ini.
Panduan prosedural berikut menjelaskan apa yang terjadi selama pembuatan HyperPod klaster dan bagaimana skrip siklus hidup dasar dirancang.
-
create_cluster.json
— Untuk mengirimkan permintaan pembuatan HyperPod cluster, Anda menyiapkan fileCreateCluster
permintaan dalam JSON format. Dalam contoh praktik terbaik ini, kami berasumsi bahwa file permintaan diberi namacreate_cluster.json
. Menuliscreate_cluster.json
untuk menyediakan HyperPod klaster dengan grup instance. Praktik terbaik adalah menambahkan jumlah grup instance yang sama dengan jumlah node Slurm yang Anda rencanakan untuk dikonfigurasi di HyperPod cluster. Pastikan Anda memberikan nama khusus ke grup instance yang akan Anda tetapkan ke node Slurm yang akan Anda siapkan.Selain itu, Anda diminta untuk menentukan jalur bucket S3 untuk menyimpan seluruh rangkaian file konfigurasi dan skrip siklus hidup Anda ke nama bidang
InstanceGroups.LifeCycleConfig.SourceS3Uri
dalam formulirCreateCluster
permintaan, dan menentukan nama file skrip shell titik masuk (anggap namanya).on_create.sh
InstanceGroups.LifeCycleConfig.OnCreate
catatan
Jika Anda menggunakan formulir Create a cluster submission di UI HyperPod konsol, konsol mengelola pengisian dan pengiriman
CreateCluster
permintaan atas nama Anda, dan menjalankan di backendCreateCluster
API. Dalam hal ini, Anda tidak perlu membuatcreate_cluster.json
; sebagai gantinya, pastikan Anda menentukan informasi konfigurasi cluster yang benar ke formulir Create a cluster submission. -
on_create.sh
— Untuk setiap grup instance, Anda perlu menyediakan skrip shell entrypoint,, untuk menjalankan perintahon_create.sh
, menjalankan skrip untuk menginstal paket perangkat lunak, dan mengatur lingkungan HyperPod cluster dengan Slurm. Dua hal yang perlu Anda persiapkanprovisioning_parameters.json
diperlukan oleh HyperPod untuk menyiapkan Slurm dan satu set skrip siklus hidup untuk menginstal paket perangkat lunak. Script ini harus ditulis untuk menemukan dan menjalankan file-file berikut seperti yang ditunjukkan dalam contoh script dion_create.sh
. catatan
Pastikan Anda mengunggah seluruh rangkaian skrip siklus hidup ke lokasi S3 yang Anda tentukan.
create_cluster.json
Anda juga harus menempatkan Andaprovisioning_parameters.json
di lokasi yang sama.-
provisioning_parameters.json
- Ini adalahFormulir konfigurasi untuk penyediaan node Slurm pada HyperPod.on_create.sh
Skrip menemukan JSON file ini dan mendefinisikan variabel lingkungan untuk mengidentifikasi jalur ke sana. Melalui JSON file ini, Anda dapat mengonfigurasi node Slurm dan opsi penyimpanan seperti Amazon FSx untuk Lustre untuk Slurm untuk berkomunikasi dengannya. Diprovisioning_parameters.json
, pastikan bahwa Anda menetapkan grup instance HyperPod cluster menggunakan nama yang Anda tentukancreate_cluster.json
ke node Slurm dengan tepat berdasarkan bagaimana Anda berencana untuk mengaturnya.Diagram berikut menunjukkan contoh bagaimana dua file JSON konfigurasi
create_cluster.json
danprovisioning_parameters.json
harus ditulis untuk menetapkan kelompok HyperPod instance untuk node Slurm. Dalam contoh ini, kita mengasumsikan kasus pengaturan tiga node Slurm: controller (management) node, log-in node (yang opsional), dan compute (worker) node.Tip
Untuk membantu Anda memvalidasi dua JSON file ini, tim HyperPod layanan menyediakan skrip validasi,.
validate-config.py
Untuk mempelajari selengkapnya, lihat Validasi file JSON konfigurasi sebelum membuat cluster Slurm HyperPod. Gambar: Perbandingan langsung antara
create_cluster.json
untuk pembuatan HyperPod cluster danprovisiong_params.json
untuk konfigurasi Slurm. Jumlah grup instancecreate_cluster.json
harus sesuai dengan jumlah node yang ingin Anda konfigurasikan sebagai node Slurm. Dalam kasus contoh pada gambar, tiga node Slurm akan dikonfigurasi pada HyperPod sekelompok tiga grup instance. Anda harus menetapkan grup instance HyperPod cluster ke node Slurm dengan menentukan nama grup instance yang sesuai. -
resource_config.json
— Selama pembuatan cluster,lifecycle_script.py
skrip ditulis untuk mengharapkanresource_config.json
file dari HyperPod. File ini berisi informasi tentang cluster, seperti jenis instance dan alamat IP.Saat Anda menjalankan
CreateCluster
API, HyperPod buat file konfigurasi sumber daya/opt/ml/config/resource_config.json
berdasarkancreate_cluster.json
file. Path file disimpan ke variabel lingkungan bernamaSAGEMAKER_RESOURCE_CONFIG_PATH
.penting
resource_config.json
File ini dibuat secara otomatis oleh HyperPod platform, dan Anda NOT harus membuatnya. Kode berikut adalah untuk menunjukkan contohresource_config.json
yang akan dibuat dari pembuatan cluster berdasarkancreate_cluster.json
pada langkah sebelumnya, dan untuk membantu Anda memahami apa yang terjadi di backend dan bagaimana tampilan yang dihasilkan secara otomatisresource_config.json
.{ "ClusterConfig": { "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/abcde01234yz", "ClusterName": "your-hyperpod-cluster" }, "InstanceGroups": [ { "Name": "controller-machine", "InstanceType": "ml.c5.xlarge", "Instances": [ { "InstanceName": "controller-machine-1", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" } ] }, { "Name": "login-group", "InstanceType": "ml.m5.xlarge", "Instances": [ { "InstanceName": "login-group-1", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" } ] }, { "Name": "compute-nodes", "InstanceType": "ml.trn1.32xlarge", "Instances": [ { "InstanceName": "compute-nodes-1", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" }, { "InstanceName": "compute-nodes-2", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" }, { "InstanceName": "compute-nodes-3", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" }, { "InstanceName": "compute-nodes-4", "AgentIpAddress": "111.222.333.444", "CustomerIpAddress": "111.222.333.444", "InstanceId": "i-12345abcedfg67890" } ] } ] }
-
lifecycle_script.py
— Ini adalah skrip Python utama yang secara kolektif menjalankan skrip siklus hidup yang menyiapkan Slurm di cluster saat sedang disediakan. HyperPod Skrip ini membaca di dalamprovisioning_parameters.json
danresource_config.json
dari jalur yang ditentukan atau diidentifikasion_create.sh
, meneruskan informasi yang relevan ke setiap skrip siklus hidup, dan kemudian menjalankan skrip siklus hidup secara berurutan.Skrip siklus hidup adalah sekumpulan skrip yang Anda memiliki fleksibilitas lengkap untuk menyesuaikan untuk menginstal paket perangkat lunak dan mengatur konfigurasi yang diperlukan atau kustom selama pembuatan cluster, seperti menyiapkan Slurm, membuat pengguna, menginstal Conda atau Docker.
lifecycle_script.py
Skrip sampel disiapkan untuk menjalankan skrip siklus hidup dasar lainnya di repositori, seperti meluncurkan Slurm deamons (), memasang Amazon untuk FSx Lustre () start_slurm.sh
, dan menyiapkan akuntansi MariaDB () dan mount_fsx.sh
akuntansi (). setup_mariadb_accounting.sh
RDSsetup_rds_accounting.sh
Anda juga dapat menambahkan lebih banyak skrip, mengemasnya di bawah direktori yang sama, dan menambahkan baris kode lifecycle_script.py
untuk membiarkan HyperPod menjalankan skrip. Untuk informasi selengkapnya tentang skrip siklus hidup dasar, lihat juga 3.1 Skrip Siklus Hidup di repositori Pelatihan Terdistribusi Awsome. GitHub Selain pengaturan default, lebih banyak skrip untuk menginstal perangkat lunak berikut tersedia di bawah folder.
utils
lifecycle_script.py
File sudah disiapkan untuk menyertakan baris kode untuk menjalankan skrip instalasi, jadi lihat item berikut untuk mencari baris tersebut dan hapus komentar untuk mengaktifkannya.-
Baris kode berikut adalah untuk menginstal Docker
, Enroot , dan Pyxis. Paket-paket ini diperlukan untuk menjalankan kontainer Docker pada cluster Slurm. Untuk mengaktifkan langkah instalasi ini, atur
enable_docker_enroot_pyxis
parameter keTrue
dalamconfig.py
file. # Install Docker/Enroot/Pyxis if Config.enable_docker_enroot_pyxis: ExecuteBashScript("./utils/install_docker.sh").run() ExecuteBashScript("./utils/install_enroot_pyxis.sh").run(node_type)
-
Anda dapat mengintegrasikan HyperPod klaster Anda dengan Amazon Managed Service untuk Prometheus dan Grafana Terkelola Amazon untuk mengekspor metrik tentang node cluster dan cluster ke dasbor Grafana HyperPod Terkelola Amazon. Untuk mengekspor metrik dan menggunakan dasbor Slurm, dasbor NVIDIA
DCGMEksportir, dan dasbor EFA Metrik di Grafana Terkelola Amazon, Anda perlu menginstal eksportir Slurm untuk Prometheus, eksportir, dan pengekspor node. NVIDIA DCGM EFA Untuk informasi selengkapnya tentang menginstal paket eksportir dan menggunakan dasbor Grafana di ruang kerja Grafana yang Dikelola Amazon, lihat. Pantau sumber daya SageMaker HyperPod cluster Untuk mengaktifkan langkah instalasi ini, atur
enable_observability
parameter keTrue
dalamconfig.py
file. # Install metric exporting software and Prometheus for observability if Config.enable_observability: if node_type == SlurmNodeType.COMPUTE_NODE: ExecuteBashScript("./utils/install_docker.sh").run() ExecuteBashScript("./utils/install_dcgm_exporter.sh").run() ExecuteBashScript("./utils/install_efa_node_exporter.sh").run() if node_type == SlurmNodeType.HEAD_NODE: wait_for_scontrol() ExecuteBashScript("./utils/install_docker.sh").run() ExecuteBashScript("./utils/install_slurm_exporter.sh").run() ExecuteBashScript("./utils/install_prometheus.sh").run()
-
-
-
Pastikan Anda mengunggah semua file konfigurasi dan skrip pengaturan dari Langkah 2 ke bucket S3 yang Anda berikan dalam
CreateCluster
permintaan di Langkah 1. Misalnya, asumsikan bahwa Andacreate_cluster.json
memiliki yang berikut ini."LifeCycleConfig": { "SourceS3URI": "
s3://sagemaker-hyperpod-lifecycle/src
", "OnCreate": "on_create.sh
" }Kemudian, Anda
"s3://sagemaker-hyperpod-lifecycle/src"
harus berision_create.sh
,lifecycle_script.py
,provisioning_parameters.json
, dan semua skrip pengaturan lainnya. Asumsikan bahwa Anda telah menyiapkan file dalam folder lokal sebagai berikut.└── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py
Untuk mengunggah file, gunakan perintah S3 sebagai berikut.
aws s3 cp --recursive
./lifecycle_scripts
s3://sagemaker-hyperpod-lifecycle/src
Konfigurasi tertentu apa yang HyperPod dikelola dalam file konfigurasi Slurm
Saat Anda membuat klaster Slurm aktif HyperPod, HyperPod agen akan menyiapkan gres.conf
slurm.conf
/opt/slurm/etc/
untuk mengelola klaster Slurm berdasarkan permintaan pembuatan klaster dan skrip siklus HyperPod hidup Anda. Daftar berikut menunjukkan parameter spesifik mana yang ditangani dan ditimpa HyperPod agen.
penting
Kami sangat menyarankan agar Anda tidak mengubah parameter ini dikelola oleh HyperPod.
-
Dalam
slurm.conf
, HyperPod mengatur parameter dasar berikut: ClusterName
,SlurmctldHost
,PartitionName
, danNodeName
.Juga, untuk mengaktifkan Lanjutkan otomatis fungsionalitas, HyperPod membutuhkan
TaskPlugin
danSchedulerParameters
parameter yang ditetapkan sebagai berikut. HyperPod Agen mengatur dua parameter ini dengan nilai yang diperlukan secara default.TaskPlugin=task/none SchedulerParameters=permit_job_expansion
-
Di
gres.conf
, HyperPod mengelola NodeName
GPU node.
Pasang Amazon FSx untuk Lustre ke cluster Anda HyperPod
Untuk memasang sistem file bersama Amazon FSx for Lustre ke HyperPod kluster Anda, siapkan yang berikut ini.
-
Gunakan Amazon AndaVPC.
-
Agar instance HyperPod klaster dapat berkomunikasi di dalam AndaVPC, pastikan Anda melampirkan izin tambahan seperti yang dipandu pada IAM peran IAMperan untuk SageMaker HyperPod untuk. SageMaker HyperPod
-
Dalam
create_cluster.json
, sertakan VPC informasi berikut."VpcConfig": { "SecurityGroupIds": [ "
string
" ], "Subnets": [ "string
" ] }Untuk tips selengkapnya tentang menyiapkan AmazonVPC, lihatMenyiapkan SageMaker HyperPod dengan Amazon VPC.
-
-
Untuk menyelesaikan konfigurasi Slurm dengan Amazon FSx untuk Lustre, tentukan nama Amazon FSx DNS dan nama FSx mount Amazon
provisioning_parameters.json
seperti yang ditunjukkan pada gambar di bagian. Mulailah dengan skrip siklus hidup dasar yang disediakan oleh HyperPod Anda dapat menemukan FSx informasi Amazon baik dari konsol Amazon FSx untuk Lustre di akun Anda atau dengan menjalankan yang berikut AWS CLI perintah,aws fsx describe-file-systems
."fsx_dns_name": "
fs-12345678a90b01cde
.fsx.us-west-2
.amazonaws.com", "fsx_mountname": "1abcdefg
"
Validasi file JSON konfigurasi sebelum membuat cluster Slurm HyperPod
Untuk memvalidasi file JSON konfigurasi sebelum mengirimkan permintaan pembuatan cluster, gunakan skrip validasi konfigurasi. validate-config.py
provisioning_parameters.json
file create_cluster.json
dan dari Mulailah dengan skrip siklus hidup dasar yang disediakan oleh HyperPod bagian, jalankan skrip validasi sebagai berikut.
python3 validate-config.py --cluster-config
create_cluster.json
--provisioning-parametersprovisioning_parameters.json
Berikut ini adalah contoh output dari validasi yang berhasil.
✔️ Validated instance group name worker-group-1 is correct ... ✔️ Validated subnet subnet-012345abcdef67890 ... ✔️ Validated security group sg-012345abcdef67890 ingress rules ... ✔️ Validated security group sg-012345abcdef67890 egress rules ... ✔️ Validated FSx Lustre DNS name fs-012345abcdef67890.fsx.us-east-1.amazonaws.com ✔️ Validated FSx Lustre mount name abcdefgh ✅ Cluster Validation succeeded
Validasi runtime sebelum menjalankan beban kerja produksi pada klaster Slurm HyperPod
Untuk memeriksa runtime sebelum menjalankan beban kerja produksi apa pun di cluster Slurm HyperPod, gunakan skrip validasi runtime. hyperpod-precheck.py
Untuk menjalankan skrip pada beberapa node sekaligus, gunakan srun
seperti yang ditunjukkan pada contoh perintah berikut menjalankan skrip pada cluster Slurm 8 node.
# The following command runs on 8 nodes srun -N
8
python3 hyperpod-precheck.py
catatan
Untuk mempelajari lebih lanjut tentang skrip validasi seperti fungsi validasi runtime apa yang disediakan skrip dan pedoman untuk menyelesaikan masalah yang tidak lulus validasi, lihat Validasi runtime sebelum menjalankan beban kerja di repositori Pelatihan
Mengembangkan skrip siklus hidup secara interaktif pada node cluster
Bagian ini menjelaskan bagaimana Anda dapat mengembangkan skrip siklus hidup secara interaktif tanpa berulang kali membuat dan menghapus cluster. HyperPod
-
Buat HyperPod cluster dengan skrip siklus hidup dasar.
-
Masuk ke node cluster.
-
Kembangkan script (
configure_xyz.sh
) dengan mengedit dan menjalankannya berulang kali pada node.-
HyperPod menjalankan skrip siklus hidup sebagai pengguna root, jadi kami sarankan Anda menjalankan
configure_xyz.sh
sebagai pengguna root saat mengembangkan untuk memastikan bahwa skrip diuji dalam kondisi yang sama saat dijalankan oleh. HyperPod
-
-
Integrasikan skrip ke dalam
lifecycle_script.py
dengan menambahkan baris kode yang mirip dengan yang berikut ini.ExecuteBashScript("./utils/
configure_xyz.sh
").run() -
Unggah skrip siklus hidup yang diperbarui ke bucket S3 yang awalnya Anda gunakan untuk mengunggah skrip siklus hidup dasar.
-
Uji versi terintegrasi
lifecycle_script.py
dengan membuat HyperPod cluster baru.
Perbarui cluster dengan skrip siklus hidup baru atau yang diperbarui
Ada tiga cara untuk memperbarui perangkat HyperPod lunak.
-
UpdateClusterSoftware
APIUntuk menambal HyperPod perangkat lunak menjalankan kembali skrip siklus hidup pada seluruh grup instance. -
UpdateCluster
APISatu-satunya menjalankan skrip siklus hidup untuk grup instance baru. -
Anda juga dapat menjalankan skrip siklus hidup secara langsung dalam instance. HyperPod
Pertimbangan
Pertimbangkan hal berikut saat menggunakan SageMaker HyperPod.
-
HyperPod berjalan SageMaker HyperPod DLAMI pada setiap instance cluster, dan AMI memiliki paket perangkat lunak pra-instal yang sesuai dengan kompatibilitas antara mereka dan fungsionalitas. HyperPod Perhatikan bahwa jika Anda menginstal ulang salah satu paket pra-instal, Anda bertanggung jawab untuk menginstal paket yang kompatibel dan perhatikan bahwa beberapa HyperPod fungsi mungkin tidak berfungsi seperti yang diharapkan.