Maßzahl
Flop/s oder auch FLOP/s -> Floating Point Operations per Second -> Fließkommaoperationen (Addition oder Multiplikation) pro Sekunde
Anzahl Gleitkommaoperationen ist nicht notwendigerweise direkt zur Taktgeschwindigkeit des Prozessors proportional
Einerseits können mehrere Taktzyklen bei einzelnen Prozessortypen benötigt werden
Andererseits können Vektorprozessoren in jedem Takt bis zu einige Tausende Operationen gleichzeitig ausführen
Heutzutage wird der sog. LINPACK-Benchmark zur Messung verwendet (Lösung linearer Gleichungssysteme)
heute auf Platz 1
HPE Cray EX Frontier, 9.472 AMD Epyc 7453 64-core 2.0 GHz +
37.888 AMD MI250X GPUs (2022)
1,102 ExaFlop/s
21 MW power
Uniform Memory Architecture (UMA)
UMA oder Symmetrische Multiprozessorsysteme (SMP) sind Systeme mit gemeinsamen Speicher
Globaler physikalischer Adressraum
Kommunikation und Synchronisation geschieht über gemeinsame Variablen
Symmetrischer Zugriff (d.h. gleiche Latenz) zum gesamten Hauptspeicher von jedem Prozessor aus
Gemeinsamer Adressraum macht die Programmierung von SMPs einfach und attraktiv
Effiziente, automatische Parallelisierungswerkzeuge sind verfügbar
SMPs dominieren den Servermarkt und werden im Desktopbereich immer populärer
Anwendungen mit großem Hauptspeicherbedarf
Sind wichtige Bestandteile von größeren Systemen
SMP Systeme Früher und heute
Einzig auf SMP-Systemen können sequentielle oder moderat-parallele Anwendungen mit sehr großem Hauptspeicherbedarf ausgeführt werden
Anbindung von Prozessoren und Speicherbänken an einen gemeinsamen Bus stellt nach wie vor einen hohen Kostenfaktor dar
Mit Aufkommen der multi-core Prozessoren ist heute praktisch jedes System (egal ob Notebook, PC oder Server) ein SMP-System
Falls Cache/Caches zwischen Prozessoren und Hauptspeicher existieren, muss das Cache-Kohärenz-Problem gelöst werden
Definition Cache-Kohärenz
Eine Cache-Speicherverwaltung heißt (cache-)kohärent, falls ein Lesezugriff immer den Wert des zeitlich letzten Schreibzugriffs auf das entsprechende Speicherwort liefert
Cache-Kohärenz-Problem
Replikate in den Caches verschiedener Prozessoren in einem SMP müssen aktualisiert und kohärent gehalten werden
Definition konsistent
Ein System ist konsistent, wenn alle Kopien eines Speicherworts im Hauptspeicher und den verschiedenen Cache-Speichern identisch sind
Dadurch ist auch die Kohärenz sichergestellt
Aus Sicht des Programmierers
Konsistenzmodell sagt etwas über die zu erwartende Ordnung der Speicherzugriffe durch parallel arbeitende Prozessoren aus
Ein Konsistenzmodell spezifiziert die Reihenfolge, in der Speicherzugriffe eines Prozesses von anderen Prozessen gesehen werden
Motivation der Konsistenzmodelle – Replikation
Replikation bedeutet das Halten einer oder mehrerer Kopien eines Datums
Ein Prozess, der auf dieses Datum zugreifen will, kann auf jedes beliebige Replika zugreifen
Im Idealfall erhält er immer das gleiche Ergebnis
Was also erreicht werden muss, ist die Konsistenz der Kopien
Ziel: Steigerung der Leistungsfähigkeit des Zugriffs auf ein Datum
Probleme der Replikation
Verschiedenen Kopien müssen konsistent gehalten werden
Zahlreiche Lösungen zur Konsistenzhaltung existieren, jedoch beeinflussen sie die Leistung des Gesamtsystems negativ
Dilemma: bessere Skalierbarkeit und damit bessere Leistung soll erreicht werden, aber die dazu notwendigen Mechanismen verschlechtern die Performance
Einzige Lösung: keine strikte Konsistenz, d.h. Replikate müssen nicht zu jeder Zeit absolut identisch sein; sie können es tatsächlich auch nicht sein
Nachrichtengekoppelte Multiprozessoren
(= Distributed-Memory-Multiprozessoren)
Bei den nachrichtengekoppelten Systemen gibt es keine gemeinsamen Speicher- oder Adressbereiche
Die Kommunikation geschieht durch Austauschen von Nachrichten über ein Verbindungsnetz
Alle Prozessoren besitzen nur lokale Speicher
Prozessorknoten sind üblicherweise durch serielle Punkt-zu-Punkt-Verbindungen gekoppelt
Die Skalierbarkeit ist bei nachrichtengekoppelten Multiprozessoren im Prinzip unbegrenzt
➔ heute sind fast alle Supercomputer nach diesem Prinzip aufgebaut
Aufbau DMM
Rechenknoten mit ein oder mehreren CPUs, lokalen Speicher, ggf. lokaler Festplatte sind über ein Verbindungsnetzwerk miteinander gekoppelt
Zielsetzung der Verbindungsnetzwerke
Möglichst schnell
So viele parallele Verbindungen wie möglich
Möglichst geringe Kosten
Wichtigsten Attribute
Latenz = Ende-zu-Ende Übertragungszeit
Bandbreite (lokal, aggregiert)
Ende-zu-Ende Übertragungszeit
Time(n) = overhead + routing delay + channel occupancy + contention delay
Overhead: Zeit, um Nachrichten in und aus dem Netzwerk zu bekommen
Routing delay: In jedem Netzwerkbauteil erfährt die Nachricht eine Verzögerung
Channel occupancy: Zeit, um n Bytes über einen Netzwerkkanal zu übertragen, (n+n_e )/b
b ist die Bandbreite des Netzwerkkanals
n_e sind die Anzahl Bytes des Netzwerkprotokolls
Contention delay: Zeit, in der die Nachricht in jedem Netzwerkbauteil blockiert wird, bis der nächste Netzwerkkanal frei ist
Tritt auf, wenn zwei Pakete den gleichen Netzwerkkanal benutzen möchten
Lösungen: im Netzwerkbauteil puffern, alternative Route verwenden, Nachricht löschen
Ausprägung – COTS Cluster
COTS (Commodity-Off-The-Shelf), auch Beowulf Cluster genannt Hochleistungsparallelrechner basierend auf Benutzung von günstiger Standard-Hardware aus dem PC-Bereich
Auch: kleine SMP-Systeme und multi-core Vernetzung meist mit normalen Ethernet
Verwendung freier, open-source
Software für Betriebssystem und
Systemsoftware (typisch: Linux, Torque, OpenMPI)
Verwendung von Haushaltslüftern, Mehrfachsteckdosen, (Holz-)regalen, etc.
IBM RS/6000 SP – Systemaufbau
Bis zu 16 Knoten werden zu einer Einheit (Frame) zusammengeschlossen, die dann jeweils über eine redundante Stromversorgung und Steuerungslogik sowie über ein Hochleistungsnetzwerk verfügen
Innerhalb dieser Einheiten können die verschiedenen Knotentypen gemischt werden
Das Netz (SP-switch) arbeitet mit einem Takt von 150 MHz (bei einer internen Taktrate von 75 MHz)
Latenz: unter 2 µs SP-switch- und 300 ns Hardware-Latenz
Bandbreite: 150 MByte/s pro Richtung, also 300 MByte/s bidirektional
Ein Kommunikationsadapter (MX2 communication adapter) koppelt einen Knotenprozessor über seinen 6xx MX-Bus mit dem SP-switch
High-Performance Switch (HPS) = SP-switch
Grundelemente
jeweils ein zweistufiges 16x16-Schalternetz auf einem Board
Schalter sind 4x4-bidirektionale Kreuzschienenschalter, die aus dem sogenannten Vulcan switch chip entwickelt wurden
Enthält 8 Eingabepforten (input ports) und 8 Ausgabepforten (output ports) und dazwischen eine Kreuzschiene
Pforten und Kreuzschiene besitzen 8 Bit breite Übertragungswege
Ohne Blockierung dauert die Übertragung eines Flits (2 Bytes) von der Eingabe- zur Ausgabepforte fünf Takte
Jede Pforte besitzt eine Übertragungsbandbreite von 150 MByte pro Sekunde
Ein ankommendes Nachrichtenpaket wird über den 64 Byte großen FIFO- Puffer der Eingabepforte in den 4 KByte großen zentralen Puffer (central queue) geleitet. Dieser ist so ausgelegt, dass er für jede der acht Ausgabepforten wiederum einen FIFO-Puffer bereitstellt.
Berühmte IBM RS/6000 Systeme – Deep Blue
Schachcomputer auf Basis einer 32-Knoten IBM RS/6000 Ergänzt um 480 spezielle VLSI Schach-Chips
Auswertung von 200 Mio. Schachzügen pro Sekunde bei einer Tiefe von 6-8 Zügen
Erstes Match im Jahre 1996 gewann Kasparov mit 4 -2 Re-Match im Mai 1997 gewann DeepBlue mit 3.5 - 2.5
Erster Gewinn eines Schachcomputers über einen menschlichen Schachspieler
Es galten umfangreiche Regeln u.a. wie schnell gespielt werden musste
Dennoch gab es strittige Punkte, u.a. durfte das DeepBlue-Team das Schachprogramm zwischen den Spielen anpassen, d.h. Kasparov spielte de facto jedes Mal gegen einen anderen Gegner
SMP-Beispielsystem
IBM p690+
Logical Partitions (LPARs)
Eine Methode, um aus logischen Ressourcen (Prozessoren, Speicher, I/O Slots) physikalischen Maschinen zu schaffen
Volle Flexibilität mit gleichzeitig voller Isolation (vgl. virtuelle Maschine)
Auf jeder LPAR wird eine volle Kopie des Betriebssystems AIX/Linux ausgeführt
Eine LPAR ist vergleichbar zu einem ThinNode in der RS/6000
LPARs können entsprechend ihrer Funktionen gruppiert werden, z.B.:
Compute Partitionen für parallele Anwendungen
Login Partitionen für interaktiven Benutzer-Login, Programm-Entwicklung, Daten-Management, usw.
I/O Partitionen für Festplatten-I/O und das Global Parallel File System (GPFS)
TSM Partitionen für Band-I/O und Backup mit hierarchical storage management (HSM)
JUMP
JUMP des Forschungszentrum Jülich
41 Schränke p690+ als IBM Regatta H+ SMP Cluster ergeben einen sehr leistungsfähigen Supercomputer im Jahre 2004 (No. 21 in 6/2004)
5 Jahre später
-> Gleiche Leistung, die vorher in 41 Schränken untergebracht war, steckt nun in 1 Schrank !
Last changeda year ago