Ajustar um Cluster de GPU NVIDIA para Apache Spark

Você pode ajustar seus clusters de GPU NVIDIA para otimizar seu desempenho usando recomendações do provedor de GPU e instalando bibliotecas opcionais.

O ajuste de clusters de GPU pode ajudar a otimizar o desempenho desses clusters quando chamados por jobs no Oracle AI Data Platform Workbench.

Para clusters baseados em GPU NVIDIA, você pode seguir o Guia de Ajuste da NVIDIA para obter recomendações e etapas que você pode seguir para otimizar o desempenho.

Você também tem a opção de instalar os plug-ins NVIDIA cuDF e cuML para bibliotecas Apache Spark para auxiliar na otimização:

  • O plug-in cuDF para a biblioteca Apache Spark é um acelerador para o Apache Spark e fornece um conjunto de plug-ins que aproveitam as GPUs para acelerar o processamento.
  • A biblioteca plug-in cuML para Apache Spark permite machine learning distribuído e acelerado por GPU no Apache Spark e fornece vários algoritmos compatíveis com PySpark ML com a tecnologia da biblioteca cuML.

A biblioteca de plugins do cuDF é comumente usada primeiro para engenharia de recursos e limpeza de dados e, em seguida, a validação cruzada é executada em escala usando a biblioteca de plugins do cuML. Você pode usar essas bibliotecas para casos de uso como detecção de fraude (série de tempo), fluxo de cliques na web e experimentação A/B.

Tabela 9-2 Configurações Recomendadas do Spark

Definição Valor Observação
spark.task.resource.gpu.amount 0,062 1 / spark.executor.cores
spark.rapids.sql.concurrentGpuTasks 3 Memória de GPU / 8 GB, máximo de 4
spark.rapids.shuffle.multiThreaded.writer.threads 32 Contagem de núcleos de CPU/GPU por trabalhador
shuffle.multiThreaded.reader.threads 32 Contagem de núcleos de CPU/GPU por trabalhador
spark.shuffle.manager com.nvidia.spark.rapids.spark350. RapidsShuffleManager -
spark.rapids.shuffle.mode MULTITHREAD -
faísca.plugins com.nvidia.spark.SQLPlugin -
spark.executor.resource.gpu.amount 1 -
spark.sql.files.maxPartitionBytes 2 GB Opcional, recomendado para grandes conjuntos de dados
spark.rapids.sql.batchSizeBytes 2 GB Opcional, recomendado para grandes conjuntos de dados
spark.rapids.memory.host.spillArmazenamentoTamanho 32 G Opcional, recomendado para grandes conjuntos de dados
spark.rapids.memory.pinnedPool.size 8 G Opcional, recomendado para grandes conjuntos de dados
spark.sql.adaptive.coalescePartitions.minPartitionSize 32 MB Opcional, recomendado para grandes conjuntos de dados
spark.sql.adaptive.advisoryPartitionSizeInBytes 160 MB Opcional, recomendado para grandes conjuntos de dados
spark.rapids.filecache.ativado Verdadeiro Opcional, recomendado se as cargas de trabalho estiverem reutilizando conjuntos de dados