Revenir au contenu principal

Tungsten

Essayer Gratuitement Databricks

Qu’est-ce que le projet Tungsten ?

Tungsten est le nom de code d’un projet global visant à modifier le moteur d’exécution d’Apache Spark. Il a pour but d'améliorer considérablement l’efficacité de sa mémoire et de son unité centrale pour les applications Spark, en se rapprochant des performances des matériels les plus modernes.

Le projet Tungsten comprend les initiatives suivantes :

  • Gestion de la mémoire et traitement binaire : il s’agit de tirer parti de la sémantique des applications pour gérer efficacement la mémoire et éliminer l'overhead lié au modèle d’objet de la JVM et à la collecte des variables inutiles.
  • Calculs utilisant la mémoire cache : algorithmes et structures de données permettant d’exploiter la hiérarchie de la mémoire.
  • Génération de code : utiliser la génération de code pour exploiter les compilateurs et les processeurs modernes.
  • Suppression des distributions de fonctions virtuelles : cela réduit les appels multiples au processeur, ce qui peut avoir un impact important sur les performances lorsque les fonctions sont distribuées des milliards de fois.
  • Données intermédiaires dans la mémoire ou dans les registres du processeur : la phase 2 du projet Tungsten place les données intermédiaires dans les registres du processeur. Cela représente une réduction d’un ordre de grandeur du nombre de cycles nécessaires pour obtenir des données à partir des registres du processeur plutôt qu’à partir de la mémoire.
  • Déploiement de boucles et SIMD : optimiser le moteur d’exécution d’Apache Spark pour tirer parti des compilateurs modernes et de la capacité des processeurs à compiler et à exécuter efficacement de simples boucles for (contrairement aux graphes d’appels de fonctions complexes).

L’accent mis sur l’efficacité du processeur est dû au fait que les workloads Spark sont de plus en plus bloqués par l’utilisation du processeur et de la mémoire, plutôt que par les E/S (entrées/sorties) et la communication réseau. Cette tendance est illustrée par les recherches récentes sur les performances des workloads de Big Data.

Ressources complémentaires

Retour au glossaire