Direkt zum Hauptinhalt

Was ist Wolfram?

Wie das Tungsten-Projekt die Ausführungs-Engine von Spark durch intelligentere Speichernutzung, Cache-basierte Algorithmen und Codegenerierung optimiert, um die Leistung näher an die von Bare-Metal-Systemen heranzuführen.

10 Personas Artificial Intelligence

Summary

  • Erfahren Sie, wie Tungsten die Speicher- und CPU-Effizienz der Spark-Ausführungs-Engine optimiert, um die Grenzen moderner Hardware für Spark-Anwendungen auszuloten.
  • Lernen Sie Tungstens wichtigste Initiativen kennen, darunter explizites Speichermanagement, Cache-basierte Berechnungen, Codegenerierung und die Reduzierung virtueller Funktionsaufrufe.
  • Verstehen Sie, wie Techniken wie das Speichern von Zwischenergebnissen in CPU-Registern, Loop Unrolling und SIMD-Unterstützung die Leistung von Spark SQL- und DataFrame-Workloads deutlich steigern.

Was ist das Tungsten-Projekt?

Tungsten ist der Codename für ein Rahmenprojekt, mit dem Änderungen an der Ausführungs-Engine von Apache Spark vorgenommen werden sollen. Der Schwerpunkt liegt dabei auf einer wesentlich effizienteren Nutzung von Speicher und Prozessor für Spark-Anwendungen, um die Leistungsfähigkeit moderner Hardware möglichst weitgehend auszureizen.

5-FACHER LEADER

Gartner®: Databricks als Leader für Cloud-Datenbanken

Das Tungsten-Projekt umfasst die folgenden Initiativen:

  • Memory Management und Binary Processing: Nutzung der Anwendungssemantik mit dem Ziel, Speicher explizit zu verwalten und den Mehraufwand für das JVM-Objektmodell und die Garbage Collection zu minimieren
  • Cache-Aware Computation: Algorithmen und Datenstrukturen zur Ausschöpfung der Speicherhierarchie
  • Code Generation: Optimale Nutzung moderner Compiler und CPUs durch Codegenerierung
  • No Virtual Function Dispatches: Reduziert die Anzahl der CPU-Aufrufe, was sich bei milliardenfachem Dispatching gravierend auf die Leistung auswirken kann
  • Intermediate Data in Memory vs CPU Registers: Tungsten-Phase 2: Ablegen von Zwischendaten in CPU-Registern. Das Abrufen von Daten aus den CPU-Registern statt aus dem Speicher bringt eine Verringerung der Zyklusanzahl um mehrere Größenordnungen mit sich.
  • Loop Unrolling and SIMD: Optimierung der Ausführungs-Engine von Apache Spark, um die Vorteile moderner Compiler und CPUs zu nutzen, die einfache for-Schleifen (im Gegensatz zu komplexen Funktionsaufrufgraphen) effizient kompilieren und ausführen können

Das Hauptaugenmerk auf der CPU-Effizienz liegt in der Tatsache begründet, dass Engpässe bei Spark-Workloads zunehmend durch CPU- und Speichernutzung statt durch E/A- und Netzwerkkommunikation entstehen. Dieser Trend zeigt sich in den jüngsten Untersuchungen zur Leistung von Big-Data-Workloads.
 

Zusätzliche Ressourcen

Verpassen Sie keinen Beitrag von Databricks

Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.