Usar o Dynamic Workload Scheduler

Você pode usar o modo de início flexível do Programador dinâmico de cargas de trabalho (DWS) para melhorar a capacidade de acesso de recursos escassos de GPU para suas cargas de trabalho em lote do Serviço gerenciado para Apache Spark.

Visão geral

O Dynamic Workload Scheduler é um programador com reconhecimento de capacidade que gerencia recursos de computação escassos globalmente. No modo Início flexível, o Serviço Gerenciado para Apache Spark pode colocar sua solicitação em fila por uma duração configurável quando as GPUs não estão imediatamente disponíveis devido a falta de estoque regional.

O Flex Start é o comportamento padrão para todas as cargas de trabalho habilitadas para GPU enviadas ao Serviço Gerenciado para Apache Spark versão do ambiente de execução do Spark 3.0+. Quando os recursos estão indisponíveis, a solicitação é enfileirada em vez de falhar com um erro de falta de estoque. Depois que a capacidade é obtida, o DWS provisiona todo o cluster "de uma só vez" antes do início da execução. Para mais informações, consulte Apresentação do programador de cargas de trabalho dinâmicas.

Vantagens

  • Maior disponibilidade:redução significativa nas falhas de jobs causadas por escassez temporária de capacidade da GPU.
  • Provisionamento atômico:provisionamento de workers do cluster como uma única unidade, garantindo a integridade do cluster e evitando cenários em que apenas um conjunto parcial de workers é criado.
  • Confiabilidade padrão:melhoramos a aquisição de recursos sem configuração manual de parâmetros.

Requisitos de cota

Para usar o DWS Flex Start, seu projeto precisa ter cota suficiente:

  • Cota de GPU preemptiva:o DWS Flex Start consome a versão preemptiva do pool de cotas de GPU em vez do pool padrão (por exemplo, PREEMPTIBLE_NVIDIA_L4_GPUS). Para mais informações, consulte Cotas de recursos do Serviço gerenciado para Apache Spark.
  • Cota de SSD local:ao usar a classe de armazenamento performance com máquinas aceleradas por GPU, o Serviço Gerenciado para Apache Spark provisiona SSDs locais para embaralhamento de alta velocidade e armazenamento temporário. O projeto precisa ter cota suficiente de SSD local na região de destino.

Configuração

O DWS Flex Start é ativado por padrão para cargas de trabalho de GPU na versão de execução 3.0+. Use as seguintes propriedades do Spark para personalizar o tempo limite ou desativar o recurso:

Propriedade Descrição Valores Padrão
spark.dataproc.[driver|executor].provisioning.mode Especifica o modelo de provisionamento. Use queue para início flexível do DWS (padrão para GPUs) ou default para desativar o DWS e usar o provisionamento sob demanda. queue, default queue (para GPUs no 3.0+)
spark.dataproc.[driver|executor].provisioning.allocationTimeout A duração máxima que o pool de nós aguarda na fila por capacidade. O padrão é 1 hora (3600s) e o máximo é 2 horas (7200s). Observação: os valores precisam terminar com o sufixo "s". duração em segundos (por exemplo, 1800s) 3600s

Exemplo: carga de trabalho em lote de GPU com início flexível do DWS

O exemplo a seguir envia um job em lote do PySpark usando GPUs NVIDIA L4. Com o DWS Flex Start ativado por padrão, o comando define um tempo limite de fila de 30 minutos (1800s) para o driver e os executores:

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"