bk99.de entertain the web since 1997

Warum Open-Source-Datenbanken GPUs kaum nutzen

Zusammenfassung

Ein Slashdot-Leser fragte Ende 2013, warum Open-Source-Datenbanken keine Grafikkarten nutzen. Anlass war Red Fox von der Georgia Tech: Das System führte den kompletten Benchmark TPC-H auf einer NVIDIA Titan aus, siebenmal schneller als eine kommerzielle Datenbank auf einem Amazon-EC2-Knoten mit 32 Kernen und 68-mal schneller als ein einzelner Xeon-Kern. Trotz mehrerer solcher Forschungsprojekte war kein Code in MonetDB, MySQL oder ähnliche Systeme eingeflossen.

Warum GPUs für Datenbanken?

Grafikkarten haben Tausende einfache Rechenkerne und einen sehr schnellen eigenen Speicher. Viele Datenbankoperationen wie Filtern, Sortieren oder Zusammenfassen großer Tabellen lassen sich gut parallelisieren. Red Fox übersetzte dafür Abfragen in GPU-Programme und optimierte sie als Ganzes.

TPC-H ist ein Standard-Benchmark für analytische Abfragen, wie sie in Auswertungen und Berichten vorkommen. Dass ein Forschungssystem alle Abfragen darauf schaffte, war bemerkenswert, denn viele frühere Ansätze beschleunigten nur einzelne Operationen.

Warum es nicht in die großen Datenbanken kam

Die Antworten der Diskussion lassen sich auf ein Problem zuspitzen: Die Daten müssen erst zur Grafikkarte. Der Grafikspeicher war klein und der Weg über PCIe langsam im Vergleich zur Rechenzeit. Bei vielen alltäglichen Abfragen ist zudem nicht das Rechnen der Engpass, sondern das Lesen von der Festplatte oder die Verwaltung von Transaktionen. Hinzu kam die Bindung an CUDA und damit an einen Hersteller.

Was daraus wurde

Spezialisierte GPU-Datenbanken entstanden trotzdem, etwa MapD, später HEAVY.AI, oder die PostgreSQL-Erweiterung PG-Strom. Durchgesetzt haben sich GPUs vor allem bei Analysen mit sehr großen Datenmengen und beim maschinellen Lernen. Klassische Datenbanken setzen heute eher auf spaltenorientierte Speicherung und Vektorbefehle der CPU.

Ideen

  • Analytische Datenbankabfragen lassen sich auf Tausende GPU-Kerne verteilen.
  • Ganze Abfragen werden in GPU-Programme übersetzt und gemeinsam optimiert.
  • Standard-Benchmarks wie TPC-H machen Datenbanksysteme vergleichbar.

Einsichten

  • Rechenleistung hilft wenig, wenn der Datentransport zum Rechenwerk der Engpass ist.
  • Forschungsergebnisse erreichen große Open-Source-Projekte nur, wenn jemand die Integration und Pflege übernimmt.
  • Herstellerbindung bremst die Übernahme neuer Technik in allgemeine Software.

Fakten

  • Red Fox lief auf einer NVIDIA GeForce GTX Titan.
  • Die Beschleunigung betrug das Siebenfache gegenüber einer kommerziellen Datenbank auf 32 EC2-Kernen.
  • Gegenüber einem einzelnen Xeon-Kern war Red Fox 68-mal schneller.

Referenzen

Bemerkungen

  • Red Fox stammt aus derselben Forschungsgruppe an der Georgia Tech wie der CUDA-Compiler Ocelot.

Empfehlungen

  • Miss vor dem Einsatz von Beschleunigern, ob Rechenzeit oder Datentransport der Engpass ist.
  • Prüfe für analytische Lasten spaltenorientierte Datenbanken, bevor du auf Spezialhardware setzt.

Originalbeitrag lesen →

Im Webarchiv suchen