Architekturen von Superrechnern - Cheatsheet
Frühe Supercomputer: Beispiele und technologische Meilensteine
Definition:
Frühe Supercomputer (1950er-1970er) zeichneten sich durch enorme Rechenleistung für ihre Zeit aus, ermöglicht durch fortschrittliche Hardware-Innovationen.
Details:
- ENIAC (1945) - Erster elektronischer Universalrechner, basierend auf Vakuumröhren.
- CDC 6600 (1964) - Entwickelt von Seymour Cray, gilt als erster echter Supercomputer.
- IBM System/360 (1964) - Einführung von kompatibler Mainframe-Architektur.
- Cray-1 (1976) - Supercomputer mit Vektor-Architektur, große Leistungssprünge durch innovative Design-Techniken.
- Pipelining, Parallelverarbeitung und Vektorprozessoren - Haupttechnologien der frühen Supercomputer.
Symmetrische Multiprozessor-Architekturen (SMP)
Definition:
SMP-Architekturen verwenden mehrere Prozessoren, die gleichberechtigt auf einen gemeinsamen Speicher zugreifen.
Details:
- Gleiche Zugriffszeit auf gemeinsamen Speicher für alle Prozessoren
- Kritische Abschnitte mit Locking-Mechanismen synchronisieren
- Skalierbarkeit begrenzt durch Speicherbus
- Beispielsweise in Servern und Workstations eingesetzt
- Belästigungsfreiheit durch gleichwertige CPUs
Message-Passing Interface (MPI)
Definition:
MPI für paralleles Rechnen in verteilten Systemen, Standard für Nachrichtenaustausch.
Details:
- Grundfunktion: Punkt-zu-Punkt-Kommunikation, kollektive Kommunikation.
- Wichtige Konzepte: Rank, Kommunikator, Tag.
- Beispielhafte Funktionen:
MPI_Send
, MPI_Recv
, MPI_Bcast
, MPI_Reduce
. - Implementierungen: MPICH, OpenMPI.
- Verwendet hauptsächlich in Hochleistungsrechnen (HPC).
- Ermöglicht Skalierbarkeit und effiziente Nutzung von Ressourcen in Supercomputern.
Amdahlsches Gesetz und Gustafsons Gesetz
Definition:
Das Amdahlsche Gesetz beschreibt die theoretische maximale Geschwindigkeit, die durch Parallelisierung eines Programms erreicht werden kann. Gustafsons Gesetz zeigt, dass die Problemlösung durch die Skalierung auf mehr Prozessoren effizient verbessert werden kann.
Details:
- Amdahlsches Gesetz: \[ S(\text{n}) = \frac{1}{(1 - P) + \frac{P}{\text{n}}} \], wobei
- \(S(\text{n})\): Beschleunigungsfaktor
- \(P\): parallelisierbarer Anteil
- \(n\): Anzahl der Prozessoren
- Nutzt anfallenden sequentiellen Anteil als Engpass.
- Gustafsons Gesetz: \[ S(\text{n}) = \text{n} - P(\text{n} - 1) \], wobei
- \(S(\text{n})\): Beschleunigungsfaktor
- \(P\): sequentieller Anteil
- \(n\): Anzahl der Prozessoren
- Zeigt, dass mit wachsender Problemgröße die Effizienz der Parallelisierung steigt.
Verwendung von MPI und PVM
Definition:
MPI und PVM sind Bibliotheken für paralleles Programmieren auf Superrechnern.
Details:
- MPI (Message Passing Interface): Standard für Nachrichtenübermittlung in parallelen Programmen.
- PVM (Parallel Virtual Machine): Software-Tool für das parallele verteilte Rechnen.
- MPI bietet höhere Leistung und Skalierbarkeit im Vergleich zu PVM.
- PVM einfacher zu implementieren, aber weniger effizient.
- Beide ermöglichen Kommunikation zwischen Prozessen auf verschiedenen Knoten.
- Wichtig für Programme, die auf Supercomputern laufen müssen.
Fehlertoleranz und Redundanz in Parallelrechnern
Definition:
Techniken zur Aufrechterhaltung der Funktionalität von Parallelrechnern trotz Fehlern, durch den Einsatz von Überflüssigkeit (Redundanz) und Fehlertoleranz-Mechanismen.
Details:
- Fehlertoleranz durch Hard- und Softwarelösungen
- Redundanz: Mehrfache Ausführung von Berechnungen zur Fehlererkennung und -korrektur
- Arten von Fehlern: temporäre, permanente und intermittierende Fehler
- Error Detection: Prüfsummen (\text{checksum}), \text{parity bits}, und \text{watchdog timers}
- Error Correction: Hamming-Codes und Reed-Solomon-Codes
- Fehlerbeseitigungs-Strategien: checkpointing und rollback recovery
- Ziel: Maximierung der Verfügbarkeit und Zuverlässigkeit der Systeme
Benchmarking und Leistungstests
Definition:
Benchmarking und Leistungstests bewerten die Leistung und Effizienz von Superrechnerarchitekturen.
Details:
- Benchmarks: standardisierte Programme, die spezifische Leistungen messen (z.B. LINPACK für Rechenleistung, I/O-Performance).
- Leistungstests: realistische Szenarien zur Messung von Verarbeitungszeit, Durchsatz und Skalierbarkeit.
- \textbf{Metriken:} FLOPS, GigaFLOPS, Latenz, Bandbreite.
- \textbf{Speziell für Superrechner:} TOP500-Liste, Green500 (Energieeffizienz).
- Ergebnisse zur Optimierung und Vergleich verschiedener Systeme nutzen.
Hybride Architekturansätze
Definition:
Integration von verschiedenen Architekturansätzen in einem System; häufig Nutzung von CPUs und GPUs zur Leistungssteigerung.
Details:
- Kombination von CPU und GPU
- Energieeffizienz durch spezialisierte Hardware
- Erhöhte Rechenleistung
- Flexibilität in der Aufgabenzuweisung
- Typisch in modernen Supercomputern