Vektorisierung

Die Vektorisierung, wie sie von der Mikroprozessorindustrie definiert wird, ist der Prozess, der eine skalare Operation, die auf einzelne Datenelemente wirktSingle Instruction Single Data - SISD), in eine Operation umwandelt, bei der ein single instruction gleichzeitig auf multiple data wirktSIMD).
Im weiteren Sinne ist Vektorisierung der Prozess, durch den ein einzelner Software-Ausführungsstrang in parallele, gleichzeitige Ausführungsstränge aufgeteilt werden kann, um die Leistung um Größenordnungen zu beschleunigen.
Warum ist Vektorisierung wichtig?
In der Datenbankindustrie ist die Vektorisierung die Grundlage für die Verringerung der Antwortzeit bei großen Abfragen durch die parallele Ausführung mehrerer gleichzeitiger Threads. Optimierer Anfrage Datenbanksystemen wählen die effizienteste Methode, um die Ergebnisse für eine bestimmte Anfrage zu erhalten. Indizes werden verwendet, um schnell auf einzelne Zeilen zuzugreifen; Bereichsscans für kleine Teilmengen und vollständige Tabellenscans sind als letztes Mittel reserviert, wenn jede Tabellenzeile gelesen werden muss. Single-Threaded Full-Table-Scans können bei einer Tabelle mit Milliarden von Zeilen eine Stunde dauern. Durch Vektorisierung kann die Antwortzeit solcher Operationen von Stunden auf Minuten verkürzt werden, vorausgesetzt, die Tabelle ist partitioniert und es stehen genügend CPU zur Verfügung.
Vektorisierung auf der Chipebene
Als die Geschwindigkeit der Prozessoren nachließ, begannen die Hersteller, die Anzahl der CPU , die in einem einzigen Chip untergebracht werden konnten, zu erhöhen. Heute kann ein Intel Xeon-Serverprozessor-Chip bis zu 32 Prozessorkerne haben.
Das analytische Datenbanksystem Actian Vector nutzt eine Funktion der Intel-Server, die für die Unterstützung der parallelen Verarbeitung für High-Performance Computing (HPC) entwickelt wurde: Single Instruction, Multiple Data SIMD). Im Gegensatz zu herkömmlichen Prozessoren, bei denen ausführende Programme nur auf einen einzigen CPU zugreifen können, können SMID-Anweisungen Daten in alle CPU des Servers laden. Wenn der Server über 32 CPU verfügt, lädt Actian Vector die Daten der Datenbankspalten in alle ihre CPU . Dieser einzelne vektorisierte Maschinenbefehl kann die Daten verarbeiten, für die eine herkömmliche Datenbank 32 Befehlszyklen benötigt hätte, da sie nur eine Aufzeichnung pro Befehl verarbeitet. Analytische Abfragen sind sehr datenintensiv, so dass die Verarbeitung von Hunderten von Datensätzen in einer single instruction von großem Vorteil ist.
Ausnutzung großer Cache-Speicher
Der Nutzen der SMID-Verarbeitung geht über das bloße Multithreading hinaus, da sie die schnellste Speicherart eines Systems nutzt, nämlich den Level-1-Cache (L1), der 100 Mal schneller arbeitet als der Hauptspeicher.
Der Cache-Speicher arbeitet in einer Hierarchie von Ebenen. Alle vier der unten aufgeführten Ebenen sind schneller als RAM:
- Der L1-Cache umfasst bis zu 112 KB pro Kern.
- Der L2-Cache beträgt bis zu 2 MB pro Kern.
- Der L3-Cache beträgt bis zu 408 MB.
- Der L4-Cache umfasst bis zu 64 GB.
Einige Branchenanalysten würden Actian Vector als in-memory einstufen, aber seine Fähigkeit, alle CPU zu nutzen und elegant auf die Festplatte auszulagern, macht es zu mehr als einerAnalytics Database.
Vektorisierung über geclusterte Server hinweg
Bislang haben wir die Vektorisierung innerhalb eines einzelnen Servers erörtert. Wenn eine Workload größer ist, als ein einzelner Server bewältigen kann, wenden sich Unternehmen an Massively Parallel Processing (MPP)-Servercluster. MPP-Cluster werden in der Regel nahe beieinander in benachbarten Server-Racks in einem einzigen Raum installiert, um die Netzwerklatenz zu minimieren. Sie kommunizieren miteinander über eine Hochgeschwindigkeitsverbindung mit 10 oder 30 Gigabit pro Sekunde.
Die ersten MPP-Systeme waren kostspielig und auf die Forschung und große Unternehmen beschränkt. Mit dem Aufkommen von Open-Source-Software in Form des Apache-Hadoop-Projekts fielen die Softwarekosten weg, und Intel-Server-basierte Hardware machte MPP-Systeme zum Mainstream.
Actian hat eine Variante der Vector Analytics Database entwickelt, die mit der Hadoop-Software zusammenarbeitet, um den Datenbankspeicher über ein skalierbar , geclustertes Dateisystem zu skalieren und vektorisierte Abfragen transparent über die Knoten eines Cluster zu verteilen, um die ultimative analytische Anfrage zu bieten.
Die Actian Datenplattform
Die Actian Data Platform bietet ein einheitliches Erlebnis für das Einlesen, Umwandeln, Analysieren und Speichern von Daten. Actian Vector ist ein integrierter Bestandteil der Datenplattform und bietet ultraschnelle Anfrage , selbst für komplexe Workloads, sowohl vor Ort als auch auf den Cloud von Google, AWS und Azure.