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 |