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 tuoi workload batch di Managed Service for Apache Spark.

Panoramica

Dynamic Workload Scheduler è uno scheduler che tiene conto della capacità e gestisce le risorse di calcolo scarse a livello globale. In modalità Avvio flessibile, Managed Service for Apache Spark può mettere in coda la tua richiesta per una durata configurabile quando le GPU non sono immediatamente disponibili a causa di esaurimento delle scorte a livello regionale.

Flex Start è il comportamento predefinito per tutti i workload abilitati alla GPU inviati alla versione 3.0+ del runtime Spark di Managed Service per Apache Spark. Quando le risorse non sono disponibili, la richiesta viene messa in coda anziché non riuscire con un errore di esaurimento delle scorte. Una volta ottenuta la capacità, DWS esegue il provisioning dell'intero cluster "tutto in una volta" prima dell'inizio dell'esecuzione. Per saperne di più, consulta Introduzione a Dynamic Workload Scheduler.

Vantaggi

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

Requisiti di quota

Per utilizzare DWS Flex Start, il tuo progetto deve disporre di una quota sufficiente:

  • Quota GPU preemptible:DWS Flex Start utilizza la versione preemptible del pool di quote GPU anziché il pool standard (ad esempio, PREEMPTIBLE_NVIDIA_L4_GPUS). Per saperne di più, consulta Quote di risorse di Managed Service for Apache Spark.
  • Quota SSD locale:quando utilizzi la classe di archiviazione performance con macchine accelerate dalla GPU, Managed Service for Apache Spark esegue il provisioning di SSD locali per lo shuffle ad alta velocità e l'archiviazione temporanea. Il tuo 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 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 attende 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: workload batch GPU con avvio flessibile DWS

L'esempio seguente invia un job batch PySpark utilizzando le GPU NVIDIA L4. Con DWS Flex Start 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"