Definition: Vektor-Prozessor

Rechnen mit Vektoren ist Parallel-Computing der dritten Art

| Autor / Redakteur: Thomas Drilling / Ulrike Ostler

Vektor-Protessoren sind eine von meheren Arten, Parallelisierung im High-Performance-Computing-Umfeld zu realiseren.
Vektor-Protessoren sind eine von meheren Arten, Parallelisierung im High-Performance-Computing-Umfeld zu realiseren. (Bild: Quelle: hdwallpaperbackgrounds.net.)

Im Rahmen klassischer Von-Neumannscher Rechner-Architekturen kommen heute überwiegend so genannte Skalar-Prozessoren zum Einsatz, im Vergleich zu Vektor-Prozessoren, die vor allem bei der Parallelverarbeitung eine Rolle spielen, im High-Performance-Computing aber zunehmend von Scale-Out-Computer-Cluster mit spezialisierter GPU-Unterstützung verdrängt werden. Tot sind Vektor-Prozessoren aber nicht, wie NEC auf der CeBIT in diesem Jahr demonstrierte.

Im Gegensatz zu „herkömmlichen“ skalaren Prozessoren sind Vektor-Prozessoren - gelegentlich auch Array-Prozessoren oder Vektorrechner genannt - in der Lage, eine Berechnung gleichzeitig auf zahlreichen Daten, welche in Form eines Vektors, beziehungsweise Arrays vorliegen auszuführen. Parallelisierung ist allerdings kein Alleinstellungsmerkmal von Vektor-Prozessoren.

Vom CISC über RISC zu GPU zum Vektor

So verfügen heute auch skalare und superskalare Prozessor-Architekturen mit ihren modernen Pipeline-Konzepten an zahlreichen Stellen über Merkmale der Parallelisierung, sonst wäre die heute übliche Datenverarbeitungsperformance kaum denkbar.

Hinsichtlich Komplexität und Umfang des Befehlssatzes kann man dann noch zwischen RISC und CISC-Prozessoren unterscheiden. RISC CPUs besitzen nur wenige einfache Befehle, etwa zum Addieren, Multiplizieren, im Vergleich zu CISC-CPUs, die auch über komplexe Kommandos etwa zum Ausführen spezieller Grafikoperationen verfügen.

RISC steht für „Reduced Instruction Set Computer“. Diese Anfang der achtziger Jahre von David A. Patterson und Carlo H. Séquin geprägt Designphilosophie hatte primär zum Ziel höhere Taktraten dadurch zu erzielen, dass man auf einen komplexen, eigentlich für die Assemblerprogrammierung optimierten Befehlssatz verzichtet und stattdessen einfach dekodierbare und damit schneller ausführender Befehlen zu verwendet, damit die eigentliche Befehlsausführung in genau einen Prozessortakt passt.

Was unterscheidet Skalar- und Vektor-Prozessoren?

Allerdings ist eine solche Differenzierung heute eigentlich nicht mehr relevant, weil überwiegend Mischformen verwendet werden. Sehr wohl relevant ist aber die Unterscheidung zwischen Skalar- und Vektor-Prozessor. Fast alle heute in klassischen PCs und Servern eingesetzte CPUs sind Skalar-Prozessoren.

Hierbei handelt es sich um eine Architekturklasse von Mikroprozessoren, die auf Mikrocode-Ebene jeweils „eine“ Information (Zahl, Gleitkommazahl, Opcode etc.) pro Systemtakt verarbeitet, was im Wesentlichen dem Designziel von RISC entspricht und durch eine moderne Pipeline-Architektur ermöglicht wird. Kann eine Architektur pro Takt sogar mehr als einen Befehl abschließen, spricht man von superskalar.

Streng genommen ist Superskalarität die Eigenschaft eines Prozessors, mehrere Befehle aus einem „Befehlsstrom“ gleichzeitig mit mehreren parallel arbeitenden Funktionseinheiten zu verarbeiten und damit eine von zahlreichen Möglichkeiten, durch Parallelität oder Parallel-Computing mehr Performance zu erzielen.

Parallel-Computing

Es gibt aber durchaus auch andere Konzepte für Parallelität. Neben dem beschriebenen funktionalen Trennen oder dem Pipelining – beides Verfahren, die Daten-Parallelität ermöglichen – sind außerdem ….

  • 1. Mehrkernprozessoren
  • 2. Feldrechner
  • 3. Vektorrechner
  • 4. Cluster-Computing

von Bedeutung, wobei alle in der einen oder anderen Ausprägung bei Super-Computern zum Einsatz kommen. Allgemein versteht man unter einem Parallelrechner eine Menge von „Verarbeitunsgelementen“, die auf koordinierte Art zeitgleich zusammenarbeiten. Haupt-Unterscheidungsmerkmal ist hierbei welche Entinitäten diese Verarbeitungselemente darstellen.

Dies können zum Beispiel …

  • 1. Standard-Mikropressoren oder Mehrkern-Prozessoren bei einem Multiprozessorsystem
  • 2. Gleichartige Rechenwerke beim Feldrechner
  • 3. Spezialisierte Einheiten, wie die Pipeline-Stufen oder Vektor-Pipelines bei Vektorrechnern
  • 4. Vollständige Rechner beim Cluster-Computing

…sein. Die zu einem Compute-Cluster verbundenen Knoten dürfen heutzutage auch über Internet- oder Fernverbindungen gekoppelt sein (Grid, Hypercomputer, Cloud). Die im folgenden skizzierte Vektor-Pipline gehört also einerseits auch zur Klasse der Daten-Parallelität, stellt im Zusammenhang mit der Hauptspeicher-Anbindung aber auch eine eigene Klasse dar.

Vektor-Prozessoren

Traditionellen Prozessoren sind Vektor-Prozessoren vor allem dann überlegen, wenn sehr viele gleichartige Daten auf gleiche Weise zu bearbeiten sind, was zum Beispiel bei Matrizenoperationen der Fall ist.

Die prinzipielle Überlegenheit vor der sequentiellen Bearbeitung, wie sie „normale“ Prozessoren (wie X86-CPUs) anwenden kommt aber nur beziehungsweise primär dann zum Tragen, wenn der mit einem Array-Prozessor ausgestattet Computer auch tatsächlich parallelisiert auf den Hauptspeicher zugreifen kann.

Oder genauer gesagt: Ein Vektor-Prozessor kann seine hohe Leistung im Vergleich zum Pipeline-Skalar-Prozessor nur dann liefern, wenn die zu verarbeitenden Daten auch mit der benötigten Geschwindigkeit zum Prozessor hin oder von diesem weg transportiert werden können. Bisher hat man dazu zwei unterschiedliche Konzepte ersonnen.

  • 1. So genannte Register-Register-Maschine halten die Vektoren in Zwischenspeichern, den so genannten Vektor-Registern fest, welche zwischen Prozessor und Hauptspeicher positioniert sind, so dass der Vektor-Prozessor somit direkt auf die Vektorregister zugreifen kann. Allerdings benötigt das Laden eines Vektors aus dem Hauptspeicher in ein Vektorregister Zeit, ebenso wie das Speichern eines Vektors aus dem Register im Hauptspeicher. Daher entfalten Register-Register-Maschinen ihre prinzipbedingte Schnelligkeit nur dann, wenn mehrere Operationen mit den gleichen Vektoren durchgeführt werden sollen.
  • 2. Bei Speicher-Speicher-Maschinen hingegen greift der Vektor-Prozessor direkt auf den Hauptspeicher zu. Hier kommt es zu relativ hohen Startup-Zeiten, weshalb dieses Verfahren vor allem bei langen Vektoren sehr effizient ist.

Vektor-Prozessor in freier Wildbahn

Zum Einsatz kamen und kommen Array-Prozessoren wenig überraschend im Bereich High-Performance-Computing (HPC). So verwendete beispielsweise der legendäre „Cray-1“-Supercomputer Vektor-Prozessoren. Ebenfalls Vektor-Prozessor-Systeme waren die bis zum Jahr 2000 damals noch von Cray Research hergestellten Systeme „Cray X-MP“, „Cray-2“, „Cray Y-MP“, „Cray C90“ und „Cray T90“. Seit dem Zusammenschluss zwischen Tera Computer Company und Cray Research firmiert das Unternehmen bekanntlich unter Cray Inc. und hat sein Portfolio sukzessiv erweitert.

Allerdings kommen bei aktuellen Supercomputer-Systemen überwiegend „Intel Xeon“ und „Intel Xeon Phi“ Grafikprozessoren in Form von Scale-Out X86-Clustern zum Einsatz. Vier Rechner der aktuellen Supercomputer Top 500 verwenden ausschließlich Intels Xeon-Phi-CPUs mit „Knights Landing“, statt wie sonst üblich auf ein hybrides Setup mit CPUs und Beschleunigern zu setzen, wobei in diesem Segment „Nvidia Tesla P100“ dominiert. X86-Cluster profitieren von der Verteilung von ausführbarem Code auf zahlreiche Knoten durch eine extrem schnelle Verknüpfung der Knoten im Backbone.

Spezialisierte GPU-Coprozessor-Systeme wie nVidia Tesla oder Intel Xeon Phi dominieren heute im High-Performance-Computing.
Spezialisierte GPU-Coprozessor-Systeme wie nVidia Tesla oder Intel Xeon Phi dominieren heute im High-Performance-Computing. (Bild: Intel)

EC Supercomputer mit Vektor-Prozessor

Ebenfalls ein Supercomputer der Vektor-Prozessor-Klasse war/ist der japanische Earth Simulator, der mit Vektor-Prozessoren von NEC arbeitet. Die erste Variante von 2002 wurde 2008 stillgelegt und durch einen Nachfolger mit gleichen Namen „ES2“ ersetzt, der auf einer „SX-9/E“-Architektur von NEC basiert.

Die „SX-6“-Architektur des ersten Earth Simulators mit seinen seinerzeit 40 Teraflops was schon 2006 in die Jahre gekommen und reichte seinerzeit nur noch für Platz 10 in der Top-500-Supercomputerliste. Es folgte der „SX-8“, der 2006 ein Update auf den „SX-8R“ erhielt, den mit einer Rechenleistung von 35,2 Gigaflops damals schnellsten Vektor-Prozessor der Welt.

Ein in der damals üblichen Grundkonfiguration von acht SX-8R CPUs bestückter Rechner konnte so einer Spitzenleistung von 281,6 Gigaflops erreichen. Der Earth Simulator 2 besteht aus 160 Rechenknoten mit jeweils acht Vektor-Prozessoren mit je 128 GB Hauptspeicher.

Diese Neuauflage des Earth Simulators stieg im Juni 2009 auf Platz 22 der TOP500-Liste der Supercomputer ein, wird aber seit 2014 auch nicht mehr gelistet. Die „alte“ Earth Simulator 1 führte die Top 500 mit einer Rechenleistung von 35,86 Teraflops von 2002 bis 2004 als schnellster Rechner der Welt an.

Bis 2014 rechnete auch beim deutschen Wetterdienst in Offenbach ein japanischer NEC-Supercomputer der SX 9-Serie mit Vektor-Prozessor, dessen Leistung von NEC bis 2014 in zwei Ausbaustufen auf eine Spitzenleistung von „109 TeraFlops“ gesteigert wurde.

Auch beim Deutschen Wetterdienst werkelte bis 2013 ein Vektor-Rechner vom NEC, der SX/9.
Auch beim Deutschen Wetterdienst werkelte bis 2013 ein Vektor-Rechner vom NEC, der SX/9. (Bild: DWD)

Allerdings hatte der DWD schon 2013 zwei „Cray XC30“-Supercomputer und zwei „Cray Sonexion“-Speichersysteme in Auftrag gegeben. Im Jahr 2016 musste der Systempark des DWD erneut auf den neuesten Stand der Technik gebracht werden. Daher wurde zwei Cray XC40-Supercomputer mit Intel Xeon-Prozessoren der Baureihe „E5-2600 v4“ installiert.

In diesem Zusammenhang erhielt der DWD auch ein zukunftssicheres „Cray CS400“-System mit 12 Nodes und Intel Xeon Phi-Grafik-Coprozessor. Seit dem arbeiten die „Cray XC“-, „Cray CS“- und „Cray CS-Storm“-Systeme des DWD mit dem neuen Intel Xeon E5-2600 v4-Prozessor.

Der deutsche Wetterdienst hatt bis 2013 NEC-Supercomputer mit Vektorprozessoren im Einsatz, verwendet aber heute zwei aktuelle Cray-Systeme mit Intel Xenn/Xeon Phi.
Der deutsche Wetterdienst hatt bis 2013 NEC-Supercomputer mit Vektorprozessoren im Einsatz, verwendet aber heute zwei aktuelle Cray-Systeme mit Intel Xenn/Xeon Phi. (Bild: DWD)

Vektor-Prozessoren heute

Apropos NEC. Die Japaner waren in diesem Jahr der einzige Prozessor-Hersteller auf der CeBIT und das wohl auch nur, weil Japan Partnerland der CeBIT 2017 war. AMD war ebenso wenig in Hannover präsent wie Nvidia, Via, Apple, oder Samsung und Intel tauchte vorrangig im Zusammenhang mit Drohnen auf.

NEC hatte in Hannover seinen neuen „Aurora“-Vektor-Prozessor präsentiert, der statt in einem eigenen SX-Systemen künftig zusammen mit HBM-2-Speicher auf einer PCIe-3.0-Steckkarte daherkommt und mit 300 GFLOPS pro Core bei einem Datendurchsatz von 150 Gigabit pro Sekunde aufwartet.

NECs Supercomputer Aurora gilt als schnellste Vektorlarte der Welt, ist aber nach dem Verständns von NEC kein Accelerator, sondern eine Offload Engine.
NECs Supercomputer Aurora gilt als schnellste Vektorlarte der Welt, ist aber nach dem Verständns von NEC kein Accelerator, sondern eine Offload Engine. (Bild: NEC)

Morgenröte für Vektorrechner NEC Aurora

Supercomputing und große Datenmengen

Morgenröte für Vektorrechner NEC Aurora

12.04.17 - Supercomputing-Technik liefert jene sagenhafte Performance, die großartige Anwendungsszenarien erst möglich macht. Aber: Der Supercomputer passt heute nicht nur unter den Schreibtisch, sondern auf eine PCIe-Steckkarte, und dies nicht einmal zum Preis eines „Toyota Corolla“. lesen

Hält man nach weiteren Herstellern von kompletten Vektor-Computern Ausschau wird man zum Beispiel bei oder Fujitsu Siemens Computers mit seiner „VPP“-Serie (Vector Parallel Processor) oder der „C38xx“-Serie von Convex Computer Corporation fündig. Die Supercomputer der VPP-Serie von Fujitsu sind skalierbare, vektorparallele Rechner, die seit 1996 gebaut und an europäische Kunden geliefert werden.

Vektor-Prozessoren sind also keineswegs neu, sondern seit Jahrzehnten im Einsatz und gut erforsch. Real wird die Technik im HPC-Umfeld sogar seit geraumer Zeit von Scale-out-Konzepten wie x86-Clustern und reinem GPU-Computing verdrängt.

*Über den Autor

Thomas Drilling ist freier Autor und Berater. Auf DataCenter-Insider schreibt er seinen eigenen Blog: „Drillings Open-Source-Eck

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44705742 / Definitionen)