Ottimizza un cluster GPU NVIDIA per Apache Spark

È possibile ottimizzare i cluster GPU NVIDIA per ottimizzarne le prestazioni utilizzando i suggerimenti del provider GPU e installando librerie opzionali.

Il tuning dei cluster GPU può aiutare a ottimizzare le prestazioni di tali cluster quando vengono richiamati dai job in Oracle AI Data Platform Workbench.

Per i cluster basati su GPU NVIDIA, puoi seguire la Guida al tuning di NVIDIA per suggerimenti e passi da eseguire per ottimizzare le prestazioni.

Hai anche la possibilità di installare plug-in NVIDIA cuDF e cuML per le librerie Apache Spark per facilitare l'ottimizzazione:

  • Il plugin cuDF per la libreria Apache Spark è un acceleratore per Apache Spark e fornisce un set di plugin che utilizzano le GPU per accelerare l'elaborazione.
  • Il plugin cuML per la libreria Apache Spark consente l'apprendimento automatico distribuito accelerato dalla GPU su Apache Spark e fornisce diversi algoritmi compatibili con PySpark ML alimentati dalla libreria cuML.

La libreria di plugin cuDF viene in genere utilizzata prima per la progettazione delle funzioni e la pulizia dei dati, quindi la convalida incrociata viene eseguita su larga scala utilizzando la libreria di plugin cuML. È possibile utilizzare queste librerie per casi d'uso quali il rilevamento di frodi (serie temporali), il clickstream Web e la sperimentazione A/B.

Tabella 9-2 Configurazioni Spark consigliate

Impostazione Valore Nota
spark.task.resource.gpu.amount 0,062 1 / spark.executor.cores
spark.rapids.sql.concurrentGpuTasks 3 Memoria GPU / 8 GB, massimo 4
spark.rapids.shuffle.multiThreaded.writer.thread 32 Conteggio memorie centrali CPU/GPU per lavoratore
spark.rapids.shuffle.multiThreaded.reader.thread 32 Conteggio memorie centrali CPU/GPU per lavoratore
spark.shuffle.manager com.nvidia.spark.rapids.spark350. RapidsShuffleManager -
spark.rapids.shuffle.mode MULTITHREAD -
spumante.plugins com.nvidia.spark.SQLPlugin -
spark.executor.resource.gpu.amount 1 -
spark.sql.files.maxPartitionBytes 2 GB Facoltativo, consigliato per set di dati di grandi dimensioni
spark.rapids.sql.batchSizeBytes 2 GB Facoltativo, consigliato per set di dati di grandi dimensioni
spark.rapids.memory.host.spillStorageDimensione 32 G Facoltativo, consigliato per set di dati di grandi dimensioni
spark.rapids.memory.pinnedPool.size 8 G Facoltativo, consigliato per set di dati di grandi dimensioni
spark.sql.adaptive.coalescePartitions.minPartitionSize 32 MB Facoltativo, consigliato per set di dati di grandi dimensioni
spark.sql.adaptive.advisoryPartitionSizeInBytes 160 MB Facoltativo, consigliato per set di dati di grandi dimensioni
spark.rapids.filecache.enabled Vero Facoltativo, consigliato se i carichi di lavoro riutilizzeranno i set di dati