Personalizzazione dei cluster SageMaker HyperPod con script del ciclo di vita
SageMaker HyperPod offre cluster di calcolo sempre operativi e altamente personalizzabili perché consentono di scrivere script del ciclo di vita per indicare a SageMaker HyperPod come configurare le risorse del cluster. Gli argomenti seguenti descrivono le best practice per preparare gli script del ciclo di vita per la configurazione dei cluster SageMaker HyperPod con strumenti di gestione del carico di lavoro open source.
Gli argomenti seguenti illustrano le best practice approfondite per preparare gli script del ciclo di vita per l’impostazione delle configurazioni Slurm su SageMaker HyperPod.
Panoramica generale
La procedura seguente è il flusso principale per il provisioning di un cluster HyperPod e la sua configurazione con Slurm. Le fasi sono in ordine, in base a un approccio dal basso verso l’alto.
-
Pianifica come intendi creare i nodi Slurm su un cluster HyperPod. Ad esempio, se desideri configurare due nodi Slurm, dovrai configurare due gruppi di istanze in un cluster HyperPod.
-
Prepara un file
provisioning_parameters.json, ossia Modulo di configurazione per il provisioning dei nodi Slurm su HyperPod.provisioning_parameters.jsondeve contenere le informazioni di configurazione del nodo Slurm da allocare sul cluster HyperPod. Questo file dovrebbe riflettere la progettazione dei nodi Slurm della Fase 1. -
Prepara un set di script del ciclo di vita per configurare Slurm su HyperPod, installare i pacchetti software e configurare un ambiente nel cluster adatto al tuo caso d’uso. È necessario strutturare gli script del ciclo di vita in modo che vengano eseguiti collettivamente in ordine in uno script Python centrale (
lifecycle_script.py), oltre a scrivere uno script shell del punto di ingresso (on_create.sh) per eseguire lo script Python. Lo script shell del punto di ingresso andrà fornito a una richiesta di creazione di un cluster HyperPod più avanti nella Fase 5.Inoltre, ricorda di scrivere gli script in modo che tengano in considerazione
resource_config.json, generato da HyperPod durante la creazione del cluster.resource_config.json, che contiene informazioni sulle risorse del cluster HyperPod come indirizzi IP, tipi di istanze e ARN, è il file che dovrai utilizzare per configurare Slurm. -
Raccogli tutti i file delle fasi precedenti in una cartella.
└── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py -
Carica tutti i file in un bucket S3. Copia e annota il percorso del bucket S3. Ricorda di creare un percorso del bucket S3 che inizi con
sagemaker-, perché dovrai scegliere un percorso del Ruolo IAM per SageMaker HyperPod collegato a AmazonSageMakerClusterInstanceRolePolicy, che consente solo i percorsi dei bucket S3 che iniziano con il prefissosagemaker-. Di seguito è riportato un comando di esempio per caricare tutti i file in un bucket S3.aws s3 cp --recursive./lifecycle_filess3://sagemaker-hyperpod-lifecycle/src -
Prepara una richiesta di creazione del cluster HyperPod.
-
Opzione 1: se utilizzi la AWS CLI, scrivi una richiesta di creazione del cluster in formato JSON (
create_cluster.json) seguendo le istruzioni in Creazione di un nuovo cluster. -
Opzione 2: se utilizzi l’interfaccia utente della console SageMaker AI, compila il modulo di richiesta Crea un cluster nell’interfaccia utente della console HyperPod seguendo le istruzioni in Creazione di un cluster SageMaker HyperPod.
In questa fase, assicurati di creare gruppi di istanze nella stessa struttura pianificata nelle Fasi 1 e 2. Inoltre, assicurati di specificare il bucket S3 della Fase 5 nei moduli di richiesta.
-
-
Invia la richiesta di creazione del cluster. HyperPod alloca un cluster in base alla richiesta, quindi crea un file
resource_config.jsonnelle istanze del cluster HyperPod e configura Slurm sul cluster che esegue gli script del ciclo di vita.
Gli argomenti seguenti illustrano e spiegano in dettaglio come organizzare i file di configurazione e gli script del ciclo di vita in modo che funzionino correttamente durante la creazione del cluster HyperPod.
Argomenti
Quali configurazioni specifiche sono gestite da HyperPod nei file di configurazione Slurm
Convalida dei file di configurazione JSON prima di creare un cluster Slurm su HyperPod
Convalida del runtime prima di eseguire carichi di lavoro di produzione in un cluster HyperPod Slurm
Sviluppo interattivo di script del ciclo di vita su un nodo del cluster HyperPod
Aggiornamento di un cluster con script del ciclo di vita nuovi o aggiornati