View a markdown version of this page

Ripristino automatico del nodo e ripristino automatico - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ripristino automatico del nodo e ripristino automatico

Nota

A partire dall'11 settembre 2025, HyperPod con Slurm l'orchestrazione ora supporta gli agenti di monitoraggio della salute. Esegui UpdateClusterSoftware e aggiorna alla versione più recente dell'AMI per utilizzare questa funzionalità.

Questa sezione parla delle due funzionalità SageMaker HyperPod di resilienza complementari di Amazon: il ripristino automatico dei nodi che sostituisce l'infrastruttura difettosa senza intervento manuale e la funzionalità di ripristino automatico che riavvia i processi di formazione dall'ultimo checkpoint dopo un guasto hardware.

Come funziona il ripristino automatico dei nodi

Durante la creazione o l’aggiornamento del cluster, gli utenti amministratori del cluster possono selezionare l’opzione di ripristino del nodo (istanza) scegliendo tra Automatic (consigliato) e None a livello di cluster. Se impostato suAutomatic, SageMaker HyperPod riavvia o sostituisce automaticamente i nodi difettosi.

Importante

Consigliamo di impostare l’opzione Automatic. Per impostazione predefinita, i cluster sono configurati con il ripristino automatico dei nodi.

Il ripristino automatico dei nodi viene eseguito quando vengono rilevati problemi dall’agente di monitoraggio dell’integrità, dai controlli dell’integrità di base e dai controlli dell’integrità approfonditi. Se è impostato None, l’agente di monitoraggio dell’integrità etichetta le istanze in cui viene rilevato un guasto, ma non avvia automaticamente alcuna azione di correzione o ripristino sui nodi interessati. Questa opzione non è consigliata.

Esecuzione di un lavoro di formazione con la funzionalità di SageMaker HyperPod ripristino automatico di Amazon

Questa sezione descrive come eseguire un processo di formazione con la funzionalità di SageMaker HyperPod ripristino automatico, che fornisce un'infrastruttura di resilienza zero-touch per ripristinare automaticamente un lavoro di formazione dall'ultimo checkpoint salvato in caso di guasto hardware.

Con la funzionalità di ripristino automatico, se un processo fallisce a causa di un guasto hardware o di problemi transitori tra una formazione e l'altra, la funzionalità di SageMaker HyperPod ripristino automatico avvia il flusso di lavoro di sostituzione dei nodi e riavvia il lavoro dopo la sostituzione dei nodi difettosi. I seguenti controlli hardware vengono eseguiti ogni volta che un processo fallisce durante l'utilizzo del ripristino automatico:

Categoria Nome dell’utilità Compatibilità del tipo di istanza Description
Accelerator NVIDIA SMI GPU L’utilità nvidia-smi è una CLI molto nota per gestire e monitorare le GPU. Lo strumento integrato di controllo dell’integrità analizza l’output da nvidia-smi per determinare l’integrità dell’istanza.
Accelerator Neuron Sysfs Trainium Ad Trainium-powered esempio, lo stato dei dispositivi Neuron viene determinato leggendo i contatori dei sysfs Neuron propagati direttamente dal driver Neuron.
Rete EFA GPU e Trainium Per facilitare la diagnostica dei dispositivi Elastic Fabric Adaptor (EFA), lo strumento di controllo dell’integrità di EFA esegue una serie di test di connettività utilizzando tutte le schede EFA disponibili all’interno dell’istanza.
Nota

Quando le Generic RESources (GRES) sono collegate a un nodo Slurm, Slurm in genere non consente modifiche all’allocazione dei nodi, ad esempio la sostituzione dei nodi, e quindi non consente di riprendere un processo non riuscito. A meno che non sia esplicitamente vietata, la funzionalità di HyperPod ripristino automatico mette automaticamente in coda qualsiasi job difettoso associato ai nodi. GRES-enabled Questa procedura prevede l’arresto del processo, il suo reinserimento nella coda dei processi e il suo riavvio dall’inizio.

Utilizzo della funzionalità di ripristino automatico con Slurm SageMaker HyperPod

Quando si utilizza il SageMaker HyperPod ripristino automatico con Slurm, è necessario eseguire il lavoro all'interno di un'allocazione esclusiva acquisita utilizzando o. salloc sbatch In ogni caso, devi modificare lo script del punto di ingresso per assicurarti che tutte le fasi della configurazione vengano eseguite in un unico comando srun quando riprendi il processo. Utilizzando lo script del punto di ingresso, è importante configurare l’ambiente sul nodo sostituito in modo che sia coerente con l’ambiente in cui era in esecuzione la fase del processo prima che venisse interrotta. La procedura seguente mostra come preparare uno script entrypoint per mantenere l'ambiente coerente ed eseguirlo come un singolo comando. srun

Suggerimento

Se utilizzi sbatch, puoi semplificare lo script batch creando uno script separato per la configurazione dell’ambiente e l’uso di un singolo comando srun.

  1. Crea uno script utilizzando l’esempio di codice seguente e salvalo come train_auto_resume.sh. Questo script implementa le configurazioni dell’ambiente di addestramento presupponendo che non sia stata precedentemente effettuata alcuna configurazione manuale sul nodo sostituito. Questo garantisce che l’ambiente sia indipendente dal nodo in modo che, quando un nodo viene sostituito, lo stesso ambiente venga allocato sul nodo prima di riprendere il processo.

    Nota

    L’esempio di codice seguente mostra come rilevare l’elenco dei nodi Slurm associati al processo. Non utilizzate la variabile di $SLURM_JOB_NODELIST ambiente fornita da Slurm, perché il suo valore potrebbe essere obsoleto dopo la ripresa automatica del lavoro. SageMaker HyperPod L’esempio di codice seguente mostra come definire una nuova variabile NODE_LIST per sostituire SLURM_JOB_NODELIST e quindi impostare le variabili MASTER_NODE e MASTER_ADDR al di fuori della variabile NODE_LIST.

    #!/bin/bash # Filename: train_auto_resume.sh # Sample containerized script to launch a training job with a single srun which can be auto-resumed. # Place your training environment setup here. # Example: Install conda, docker, activate virtual env, etc. # Get the list of nodes for a given job NODE_LIST=$(scontrol show jobid=$SLURM_JOBID | \ # Show details of the SLURM job awk -F= '/NodeList=/{print $2}' | \ # Extract NodeList field grep -v Exc) # Exclude nodes marked as excluded # Determine the master node from the node list MASTER_NODE=$(scontrol show hostname $NODE_LIST | \ # Convert node list to hostnames head -n 1) # Select the first hostname as master node # Get the master node address MASTER_ADDR=$(scontrol show node=$MASTER_NODE | \ # Show node information awk -F= '/NodeAddr=/{print $2}' | \ # Extract NodeAddr awk '{print $1}') # Print the first part of NodeAddr # Torchrun command to launch the training job torchrun_cmd="torchrun --nnodes=$SLURM_NNODES \ --nproc_per_node=1 \ --node_rank=$SLURM_NODE \ --master-addr=$MASTER_ADDR \ --master_port=1234 \ <your_training_script.py>" # Execute the torchrun command in the 'pytorch' Conda environment, # streaming output live /opt/conda/bin/conda run --live-stream -n pytorch $torchrun_cmd
    Suggerimento

    Puoi utilizzare lo script precedente per aggiungere altri comandi per l’installazione di eventuali dipendenze aggiuntive per il processo. Tuttavia, consigliamo di mantenere gli script di installazione delle dipendenze nel set di script del ciclo di vita utilizzati durante la creazione del cluster. Se utilizzi un ambiente virtuale ospitato in una directory condivisa, puoi utilizzare questo script anche per attivare l’ambiente virtuale.

  2. Avvia il processo con il SageMaker HyperPod ripristino automatico abilitato aggiungendo il flag --auto-resume=1 per indicare che il srun comando deve essere ritentato automaticamente in caso di guasto hardware.

    Nota

    Se è stata impostata un’allocazione di risorse con sbatch o salloc, puoi eseguire più comandi srun all’interno dell’allocazione. In caso di errore, la funzionalità di SageMaker HyperPod ripristino automatico funziona solo nella fase di lavoro corrente del srun comando con il flag. --auto-resume=1 In altre parole, l’attivazione della ripresa automatica in un comando srun non si applica agli altri comandi srun avviati all’interno di una sessione di allocazione delle risorse.

    Di seguito sono riportati esempi del comando srun con auto-resume abilitato.

    Utilizzo di sbatch

    Poiché la maggior parte della logica per la configurazione dell’ambiente è già presente in train_auto_resume.sh, lo script batch dovrebbe essere semplice e simile al codice di esempio seguente. Supponiamo che il seguente script batch venga salvato come batch.sh.

    #!/bin/bash #SBATCH --nodes 2 #SBATCH --exclusive srun --auto-resume=1 train_auto_resume.sh

    Esegui lo script batch utilizzando il comando seguente.

    sbatch batch.sh

    Utilizzo di salloc

    Inizia acquisendo un’allocazione esclusiva ed esegui il comando srun con il flag --auto-resume e lo script del punto di ingresso.

    salloc -N 2 --exclusive srun --auto-resume=1 train_auto_resume.sh

Come interagiscono il ripristino automatico del nodo e il ripristino automatico

Quando i sistemi di ripristino automatico dei nodi e di ripristino automatico sono attivi, seguono un approccio coordinato alla gestione degli errori. Se l'HMA rileva un guasto hardware, il nodo viene contrassegnato per l'esaurimento indipendentemente dallo stato a livello di lavoro. Con il ripristino automatico dei nodi abilitato, i nodi vengono sostituiti automaticamente una volta terminati tutti i job in esecuzione nei nodi. In questo scenario, per i processi con ripristino automatico abilitato, se nella fase è presente uno stato di uscita diverso da zero, viene avviato il ripristino automatico (i lavori riprendono una volta sostituiti i nodi). I lavori senza il ripristino automatico verranno semplicemente chiusi, richiedendo un nuovo invio manuale da parte di amministratori o utenti.

Nota

Se si utilizza il ripristino automatico, i nodi vengono sempre sostituiti (nessun riavvio) quando vengono rilevati guasti hardware.