Parallel- und Multicore-Architektur
Die Parallel- und Multicore-Architektur befasst sich mit Hardware, die viele Operationen gleichzeitig ausführt – mehrere Kerne auf einem Chip, Vektor- und SIMD-Einheiten sowie massiv parallele GPUs – zusammen mit den Speicher- und Kommunikationsstrukturen, die eine korrekte und effiziente parallele Arbeit ermöglichen.
Definition
Parallel- und Multicore-Architektur ist das Design von Computerhardware, die mehrere Berechnungen gleichzeitig durch replizierte Kerne, breite datenparallele Einheiten oder spezialisierte Beschleuniger durchführt, zusammen mit den Verbindungs- und Speichermechanismen, die diese koordinieren.
Scope
Dieser Bereich umfasst Hardware-Organisationen für Parallelität: Chip-Multiprozessoren und Many-Core-Designs, Shared-Memory-Systeme und die von ihnen benötigte Kohärenz und Konsistenz, SIMD- und Vektorprozessoren für Datenparallelität sowie GPU-Architekturen. Er behandelt, wie parallele Hardware gebaut wird und wie ihre Leistung skaliert. Ausgenommen sind die Softwareseite der parallelen und verteilten Programmierung und verteilte Systeme im Cluster-Maßstab, die unter „Verteiltes und paralleles Rechnen“ behandelt werden, sowie die Single-Core-Ausführungseinheit, die unter „Prozessor-Mikroarchitektur“ behandelt wird.
Sub-topics
Core questions
- Wie skaliert parallele Hardware die Leistung, und was begrenzt diese Skalierung?
- Wie werden mehrere Kerne auf einem Chip integriert und mit gemeinsamem Speicher verbunden?
- Welche Speicherkonsistenz- und Kohärenzgarantien muss Shared-Memory-Hardware bieten?
- Wie nutzen SIMD-, Vektor- und GPU-Designs die Datenparallelität aus?
- Wie werden parallele Architekturen an Workloads angepasst, um den nützlichen Durchsatz pro Watt zu maximieren?
Key concepts
- Chip-Multiprozessor
- Thread-Level-Parallelität
- Datenparallelität
- SIMD- und Vektorverarbeitung
- GPU und Many-Core
- Shared Memory und Kohärenz
- Speicherkonsistenz
- Verbindungsnetzwerk
- Amdahls Gesetz und Skalierbarkeit
- Synchronisationshardware
Key theories
- Amdahls Gesetz
- Die Beschleunigung durch Parallelisierung einer Berechnung ist durch den Anteil begrenzt, der sequenziell ausgeführt werden muss: Selbst mit unbegrenzten Prozessoren begrenzt der serielle Anteil die Gesamtbeschleunigung, was die Gestaltung und Bewertung paralleler Architekturen prägt.
- Flynn-Taxonomie der Parallelität
- Parallele Hardware wird danach organisiert, wie Befehls- und Datenströme kombiniert werden – zum Beispiel Single-Instruction Multiple-Data (SIMD) für Datenparallelität und Multiple-Instruction Multiple-Data (MIMD) für Multicore- und Multiprozessorsysteme – eine Klassifikation, die architektonische Entscheidungen prägt.
Mechanisms
Multicore-Prozessoren platzieren mehrere Kerne auf einem Die, die eine oder mehrere Cache-Ebenen und eine Speicherschnittstelle gemeinsam nutzen und durch eine On-Chip-Verbindung verbunden sind. Kohärenzprotokolle halten ihre Caches konsistent, und ein Speicherkonsistenzmodell definiert die Reihenfolge der Speicheroperationen, die über die Kerne hinweg sichtbar sind. Datenparallele Hardware – Vektoreinheiten, SIMD-Lanes und GPUs mit vielen leichtgewichtigen Kernen – wendet eine Operation auf viele Datenelemente an, während Synchronisationsprimitive parallele Threads koordinieren.
Clinical relevance
Nachdem die Taktskalierung von Einzelkernen stagnierte, wurde die Parallel- und Multicore-Architektur zum primären Weg zu höherer Leistung, sodass praktisch alle modernen Prozessoren Multicore sind. GPUs und SIMD-Einheiten treiben heute Grafiken, wissenschaftliches Rechnen und die Matrixoperationen an, die das Herzstück des Deep Learning bilden, wodurch parallele Hardware für Hochleistungs- und Künstliche-Intelligenz-Workloads von zentraler Bedeutung ist.
History
Parallele Maschinen reichen bis zu Vektor-Supercomputern wie dem Cray-1 in den 1970er Jahren und zu Forschungs-Multiprozessoren der 1980er und 1990er Jahre zurück. Das Ende der Frequenzskalierung um die Mitte der 2000er Jahre drängte die Industrie zu Multicore-Chips als Standard. GPUs entwickelten sich von festfunktionalen Grafik-Pipelines zu programmierbaren Many-Core-Beschleunigern, und datenparallele Architekturen wurden grundlegend für modernes maschinelles Lernen.
Debates
- Allzweck-Multicore versus spezialisierte Beschleuniger
- Angesichts abnehmender Erträge von homogenen Multicores wird darüber diskutiert, wie stark domänenspezifische Beschleuniger (GPUs, Tensor-Einheiten) gegenüber Allzweckkernen bevorzugt werden sollten, wobei Programmierbarkeit und Flexibilität gegen Effizienz für bestimmte Workloads abgewogen werden.
Key figures
- Gene Amdahl
- Michael J. Flynn
- John L. Hennessy
- David A. Patterson
- David E. Culler
Related topics
Seminal works
- hennessy2019
- amdahl1967
- patterson2020
Frequently asked questions
- Warum sind Prozessoren zu mehreren Kernen übergegangen?
- Die Erhöhung der Taktfrequenz eines einzelnen Kerns stieß Mitte der 2000er Jahre an Leistungs- und Hitzegrenzen. Das Hinzufügen weiterer Kerne erhöhte den Gesamtdurchsatz innerhalb desselben Leistungsbudgets, sodass Multicore zum dominierenden Weg wurde, um die Leistungssteigerung fortzusetzen – obwohl dies die Last der Beschleunigung auf parallele Software verlagert.
- Wie unterscheidet sich eine GPU von einer Multicore-CPU?
- Eine CPU hat einige leistungsstarke Kerne, die für latenzarme, allgemeine Ausführung optimiert sind. Eine GPU hat viele einfachere Kerne, die für datenparallele Arbeiten mit hohem Durchsatz optimiert sind und dieselbe Operation auf viele Datenelemente anwenden, was für Grafiken und dichte numerische Berechnungen geeignet ist, aber nicht für alle Workloads.