Usa el programador dinámico de cargas de trabajo

Puedes usar el modo de inicio flexible del programador dinámico de cargas de trabajo (DWS) para mejorar la disponibilidad de los recursos de GPU escasos para tus cargas de trabajo por lotes de Managed Service para Apache Spark.

Descripción general

El programador dinámico de cargas de trabajo es un programador que tiene en cuenta la capacidad y administra los recursos de procesamiento escasos a nivel global. En el modo de inicio flexible, Managed Service para Apache Spark puede poner en cola tu solicitud por una duración configurable cuando las GPU no están disponibles de inmediato debido a la falta de stock regional.

El inicio flexible es el comportamiento predeterminado para todas las cargas de trabajo habilitadas para GPU que se envían a Managed Service para Apache Spark Spark versión de tiempo de ejecución 3.0+. Cuando los recursos no están disponibles, la solicitud se pone en cola en lugar de fallar con un error de falta de stock. Una vez que se obtiene la capacidad, DWS aprovisiona todo el clúster "de una vez" antes de que comience la ejecución. Para obtener más información, consulta Presentamos el programador dinámico de cargas de trabajo.

Beneficios

  • Mayor disponibilidad: Reducción significativa de las fallas de trabajos causadas por la escasez transitoria de capacidad de GPU.
  • Aprovisionamiento atómico: Aprovisionamiento de trabajadores de clúster como una sola unidad, lo que garantiza la integridad del clúster y evita situaciones en las que solo se crea un conjunto parcial de trabajadores.
  • Confiabilidad predeterminada: Adquisición de recursos mejorada sin configuración manual de parámetros.

Requisitos de cuota

Para usar el inicio flexible de DWS, tu proyecto debe tener una cuota suficiente:

  • Cuota de GPU interrumpible: El inicio flexible de DWS consume la versión interrumpible del grupo de cuotas de GPU en lugar del grupo estándar (por ejemplo, PREEMPTIBLE_NVIDIA_L4_GPUS). Para obtener más información, consulta Cuotas de recursos de Managed Service para Apache Spark.
  • Cuota de SSD local: Cuando se usa la clase de almacenamiento performance con máquinas aceleradas por GPU, Managed Service para Apache Spark aprovisiona SSD locales para el almacenamiento temporal y de ordenamiento aleatorio de alta velocidad. Tu proyecto debe tener una cuota de SSD local suficiente en la región de destino.

Configuración

El inicio flexible de DWS está habilitado de forma predeterminada para las cargas de trabajo de GPU en la versión de tiempo de ejecución 3.0+. Puedes usar las siguientes propiedades de Spark para personalizar el tiempo de espera o inhabilitar la función:

Propiedad Descripción Valores Predeterminado
spark.dataproc.[driver|executor].provisioning.mode Especifica el modelo de aprovisionamiento. Usa queue para el inicio flexible de DWS (predeterminado para GPU) o default para inhabilitar DWS y usar el aprovisionamiento según demanda. queue, default queue (para GPU en 3.0+)
spark.dataproc.[driver|executor].provisioning.allocationTimeout Es la duración máxima que el grupo de nodos debe esperar en la cola para obtener capacidad. El valor predeterminado es 1 hora (3600s) y el máximo es de 2 horas (7200s). Nota: Los valores deben terminar con el sufijo "s". duración en segundos (por ejemplo, 1800s) 3600s

Ejemplo: Carga de trabajo por lotes de GPU con inicio flexible de DWS

En el siguiente ejemplo, se envía un trabajo por lotes de PySpark con GPU NVIDIA L4. Con el inicio flexible de DWS activo de forma predeterminada, el comando establece un tiempo de espera de 30 minutos (1800s) para el controlador y los ejecutores:

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"