Ajuste de un cluster de GPU de NVIDIA para Apache Spark

Puede ajustar los clusters de GPU de NVIDIA para optimizar su rendimiento mediante el uso de recomendaciones del proveedor de GPU y la instalación de bibliotecas opcionales.

El ajuste de clusters de GPU puede ayudar a optimizar el rendimiento de esos clusters cuando los llaman los trabajos de su área de trabajo de Oracle AI Data Platform.

Para los clústeres basados en GPU de NVIDIA, puedes seguir la Guía de ajuste de NVIDIA para obtener recomendaciones y pasos que puedes tomar para optimizar el rendimiento.

También tiene la opción de instalar plugins cuDF y cuML de NVIDIA para bibliotecas de Apache Spark para ayudar con la optimización:

  • El plugin cuDF para la biblioteca Apache Spark es un acelerador para Apache Spark y proporciona un conjunto de plugins que aprovechan las GPU para acelerar el procesamiento.
  • La biblioteca cuML plug-in for Apache Spark permite el aprendizaje automático distribuido y acelerado por GPU en Apache Spark y proporciona varios algoritmos compatibles con PySpark ML alimentados por la biblioteca cuML.

La biblioteca de complementos cuDF se utiliza normalmente primero para la ingeniería de funciones y la limpieza de datos, y luego la validación cruzada se realiza a escala mediante la biblioteca de complementos cuML. Puede utilizar estas bibliotecas para casos de uso como la detección de fraudes (series temporales), el flujo de clics web y la experimentación A/B.

Tabla 9-2 Configuraciones de Spark recomendadas

Valor Valor Nota
spark.task.resource.gpu.amount 0,062 1 / spark.executor.cores
spark.rapids.sql.concurrentGpuTasks 3 Memoria de GPU/8 GB, máximo de 4
spark.rapids.shuffle.multiThreaded.writer.threads 32 Núcleos de CPU/recuento de GPU por trabajador
spark.rapids.shuffle.multiThreaded.reader.threads 32 Núcleos de CPU/recuento de GPU por trabajador
spark.shuffle.manager com.nvidia.spark.rapids.spark350. RapidsShuffleManager -
spark.rapids.shuffle.mode MULTITHREAD -
spark.plugins com.nvidia.spark.SQLPlugin -
spark.executor.resource.gpu.amount 1 -
spark.sql.files.maxPartitionBytes 2 GB Opcional, recomendado para juegos de datos grandes
spark.rapids.sql.batchSizeBytes 2 GB Opcional, recomendado para juegos de datos grandes
spark.rapids.memory.host.spillStorageSize 32 G Opcional, recomendado para juegos de datos grandes
spark.rapids.memory.pinnedPool.size 8 G Opcional, recomendado para juegos de datos grandes
spark.sql.adaptive.coalescePartitions.minPartitionTamaño 32 MB Opcional, recomendado para juegos de datos grandes
spark.sql.adaptive.advisoryPartitionTamaño en bytes 160 MB Opcional, recomendado para juegos de datos grandes
spark.rapids.filecache.activado Verdadero Opcional, se recomienda si las cargas de trabajo reutilizarán los juegos de datos