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
performancecom 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"