Réglage d'un cluster de GPU NVIDIA pour Apache Spark
Vous pouvez régler vos clusters de GPU NVIDIA pour optimiser leurs performances en utilisant les recommandations du fournisseur de GPU et en installant des bibliothèques facultatives.
Le réglage des clusters de GPU peut aider à optimiser les performances de ces clusters lorsqu'ils sont appelés par des travaux dans votre workbench Oracle AI Data Platform.
Pour les clusters basés sur des GPU NVIDIA, vous pouvez suivre le guide de réglage de NVIDIA pour obtenir des recommandations et des étapes à suivre pour optimiser les performances.
Vous avez également la possibilité d'installer des plug-ins NVIDIA cuDF et cuML pour les bibliothèques Apache Spark afin de faciliter l'optimisation :
- Le module d'extension CUDF pour la bibliothèque Apache Spark est un accélérateur pour Apache Spark et fournit un ensemble de modules d'extension qui exploitent les GPU pour accélérer le traitement.
- La bibliothèque cuML plug-in pour Apache Spark permet l'apprentissage automatique distribué accéléré par GPU sur Apache Spark et fournit plusieurs algorithmes compatibles PySpark ML alimentés par la bibliothèque cuML.
La bibliothèque de plug-ins cuDF est généralement utilisée d'abord pour l'ingénierie des fonctionnalités et le nettoyage des données, puis la validation croisée est effectuée à grande échelle à l'aide de la bibliothèque de plug-ins cuML. Vous pouvez utiliser ces bibliothèques pour des cas d'utilisation tels que la détection des fraudes (séries temporelles), le flux de clics Web et l'expérimentation A/B.
Tableau 9-2 Configurations Spark recommandées
| Paramétrage | Value | Remarque |
|---|---|---|
| étincelle.tâche.ressource.gpu.montant | 0,062 | 1 / étincelle.executor.cores |
| spark.rapids.sql.concurrentGpuTasks | 3 | Mémoire GPU / 8 Go, maximum de 4 |
| spark.rapids.shuffle.multiThreaded.writer.threads | 32 | Nombre de coeurs de processeur/GPU par processus actif |
| spark.rapids.shuffle.multiThreaded.reader.threader | 32 | Nombre de coeurs de processeur/GPU par processus actif |
| spark.shuffle.manager | com.nvidia.spark.rapids.spark350. RapidsShuffleManager | - |
| shuffle.mode | MULTITHREAD | - |
| plugins | Com.nvidia.spark.SQLPlugin | - |
| spark.executor.resource.gpu.amount | 1 | - |
| spark.sql.files.maxPartitionBytes | 2 Go | Facultatif, recommandé pour les jeux de données volumineux |
| spark.rapids.sql.batchSizeBytes | 2 Go | Facultatif, recommandé pour les jeux de données volumineux |
| étincelle.rapids.memory.host.spillStockageTaille | 32 G | Facultatif, recommandé pour les jeux de données volumineux |
| étincelle.rapides.memory.pinnedPool.size | 8 G | Facultatif, recommandé pour les jeux de données volumineux |
| spark.sql.adaptive.coalescePartitions.minPartitionSize | 32 Mo | Facultatif, recommandé pour les jeux de données volumineux |
| spark.sql.adaptive.advisoryPartitionSizeInBytes | 160 MO | Facultatif, recommandé pour les jeux de données volumineux |
| spark.rapids.filecache.enabled | Vrai | Facultatif, recommandé si les charges globales réutiliseront les ensembles de données |