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 |