Utilizzare Dynamic Workload Scheduler

Puoi utilizzare la modalità di avvio flessibile di Dynamic Workload Scheduler (DWS) per migliorare l'ottenibilità di risorse GPU scarse per i carichi di lavoro batch di Managed Service for Apache Spark.

Panoramica

Dynamic Workload Scheduler è uno strumento di pianificazione in grado di gestire le risorse di calcolo scarse a livello globale. In modalità Avvio flessibile, Managed Service for Apache Spark può mettere in coda la richiesta per una durata configurabile quando le GPU non sono immediatamente disponibili a causa di esaurimenti regionali.

L'avvio flessibile è il comportamento predefinito per tutti i carichi di lavoro abilitati alla GPU inviati alla versione di runtime Spark di Managed Service for Apache Spark 3.0+. Quando le risorse non sono disponibili, la richiesta viene messa in coda anziché non riuscire con un errore di esaurimento. Una volta ottenuta la capacità, DWS esegue il provisioning dell'intero cluster "tutto in una volta" prima dell'inizio dell'esecuzione. Per ulteriori informazioni, consulta la pagina Presentazione di Dynamic Workload Scheduler.

Vantaggi

  • Maggiore disponibilità: riduzione significativa degli errori dei job causati da carenze temporanee di capacità GPU.
  • Provisioning atomico: provisioning dei worker del cluster come singola unità, che garantisce l'integrità del cluster ed evita scenari in cui viene creato solo un insieme parziale di worker.
  • Affidabilità predefinita: acquisizione di risorse migliorata senza configurazione manuale dei parametri.

Requisiti di quota

Per utilizzare l'avvio flessibile DWS, il progetto deve disporre di una quota sufficiente:

  • Quota GPU preemptive: l'avvio flessibile DWS utilizza la versione preemptive del pool di quote GPU anziché il pool standard (ad esempio, PREEMPTIBLE_NVIDIA_L4_GPUS). Per ulteriori informazioni, consulta Quote di risorse di Managed Service for Apache Spark.
  • Quota SSD locale: quando utilizzi la classe di archiviazione performance con le macchine con accelerazione GPU, Managed Service for Apache Spark esegue il provisioning degli SSD locali per lo shuffle ad alta velocità e l'archiviazione temporanea. Il progetto deve disporre di una quota SSD locale sufficiente nella regione di destinazione.

Configurazione

L'avvio flessibile DWS è abilitato per impostazione predefinita per i carichi di lavoro GPU nella versione di runtime 3.0+. Puoi utilizzare le seguenti proprietà Spark per personalizzare il timeout o disabilitare la funzionalità:

Proprietà Descrizione Valori Predefinito
spark.dataproc.[driver|executor].provisioning.mode Specifica il modello di provisioning. Utilizza queue per l'avvio flessibile DWS (impostazione predefinita per le GPU) o default per disabilitare DWS e utilizzare il provisioning on demand. queue, default queue (per le GPU su 3.0+)
spark.dataproc.[driver|executor].provisioning.allocationTimeout La durata massima per cui il pool di nodi deve attendere la capacità nella coda. Il valore predefinito è 1 ora (3600s) e il valore massimo è 2 ore (7200s). Nota: i valori devono terminare con il suffisso "s". durata in secondi (ad esempio, 1800s) 3600s

Esempio: carico di lavoro batch GPU con avvio flessibile DWS

L'esempio seguente invia un job batch PySpark utilizzando le GPU NVIDIA L4. Con l'avvio flessibile DWS attivo per impostazione predefinita, il comando imposta un timeout di accodamento di 30 minuti (1800s) sia per il driver che per gli executor:

gcloud dataproc batches submit pyspark \
    gs://my-bucket/path/to/your-script.py \
    --project="PROJECT_ID" \
    --region="REGION" \
    --version="3.0" \
    --properties="spark.dataproc.driver.resource.accelerator.type=l4,\
spark.dataproc.driver.provisioning.allocationTimeout=1800s,\
spark.dataproc.executor.resource.accelerator.type=l4,\
spark.dataproc.executor.provisioning.allocationTimeout=1800s,\
spark.dataproc.executor.compute.tier=premium,\
spark.dataproc.executor.disk.tier=premium"