Heterogene Rechnerarchitekturen Online - Cheatsheet.pdf

Heterogene Rechnerarchitekturen Online - Cheatsheet
Heterogene Rechnerarchitekturen Online - Cheatsheet Unterschiede zwischen homogenen und heterogenen Architekturen Definition: Unterschiede zwischen homogenen und heterogenen Architekturen. Details: Homogene Architektur: gleiche Arten von Prozessoren Heterogene Architektur: verschiedene Arten von Prozessoren, z.B. CPU + GPU Homogene Systeme: einfachere Programmierung und Lastverteilung Heterogene S...

© StudySmarter 2024, all rights reserved.

Heterogene Rechnerarchitekturen Online - Cheatsheet

Unterschiede zwischen homogenen und heterogenen Architekturen

Definition:

Unterschiede zwischen homogenen und heterogenen Architekturen.

Details:

  • Homogene Architektur: gleiche Arten von Prozessoren
  • Heterogene Architektur: verschiedene Arten von Prozessoren, z.B. CPU + GPU
  • Homogene Systeme: einfachere Programmierung und Lastverteilung
  • Heterogene Systeme: optimierte Leistungssteigerung durch Spezialprozessoren
  • Leistung: \text{Heterogene Systeme sind oft leistungsfähiger für bestimmte Aufgaben}
  • Komplexität: \text{Heterogene Systeme erfordern komplexere Softwareentwicklung}

Grundlagen der parallelen Verarbeitung und Amdahl's Law

Definition:

Grundlagen der parallelen Verarbeitung: Prinzipien und Techniken zum gleichzeitigen Ausführen mehrerer Berechnungen. Ziel der Beschleunigung durch die Nutzung mehrerer Prozessoren/Kerne.Amdahl's Law: beschreibt das theoretische Maximum der Beschleunigung eines Programms durch Parallelisierung.

Details:

  • Speedup S: \(S = \frac{1}{(1 - P) + \frac{P}{N}}\), wobei P der parallelisierbare Anteil und N die Anzahl der Prozessoren ist.
  • Gesamtbeschleunigung begrenzt durch nicht parallelisierbaren Anteil (1 - P)
  • Praktische Bedeutung: Trotz Erhöhung der Prozessoranzahl endet Speedup S irgendwann in einem Sättigungspunkt.

Thread-Synchronisierung und Kommunikation

Definition:

Thread-Synchronisierung und Kommunikation: Verhindern von Race Conditions und Koordinieren von Threads, um konsistente Daten zu gewährleisten.

Details:

  • Mutexe/Sperren: Verhindern gleichzeitigen Zugriff auf kritische Abschnitte.
  • Semaphoren: Zählerbasierte Synchronisierung, erlaubt mehrere Threads gleichzeitig.
  • Monitore: Kombination aus Mutex und Bedingungsvariablen.
  • Bedingungsvariablen: Ermöglichen das Warten auf bestimmte Zustände.
  • Atomare Operationen: Ununterbrochene, sichere Operationen.
  • Spinlocks: Wartet aktiv, bis die Sperre freigegeben wird.

Warp- und Thread-Verwaltung in GPUs

Definition:

Verwaltung der Ausführung von Threads in vordefinierten Gruppen (Warps) innerhalb von GPU-Kernen.

Details:

  • Ein Warp besteht aus 32 Threads.
  • Threads in einem Warp führen die gleiche Instruktion gleichzeitig aus (SIMT-Modell).
  • Thread-Divergenz tritt auf, wenn Threads unterschiedliche Pfade nehmen, was Performanceeinbußen verursachen kann.
  • Warp-Scheduler verwaltet die Zuteilung von Instruktionen zu Warps.
  • Effektive Nutzung von Warps erhöht die GPU-Auslastung und Leistung.

Entwicklung und Optimierung von Kernels in OpenCL und CUDA

Definition:

Entwicklung und Optimierung von Berechnungskernen (Kernels) für paralleles Rechnen auf GPUs in den Programmiersprachen OpenCL und CUDA.

Details:

  • OpenCL: Plattformunabhängige Programmiersprache für heterogene Systeme.
  • CUDA: NVIDIAs proprietäre API und Sprachenerweiterung für paralleles Rechnen auf GPUs.
  • Kernel: Funktion, die auf der GPU ausgeführt wird.
  • Wichtige Schritte der Optimierung: Speicherverwaltung, Parallelität erhöhen, Thread-Synchronisation minimieren.
  • Speichertypen: Global, Shared, Constant und Register-Speicher.
  • Performance-Tools: NVIDIA Visual Profiler für CUDA, AMD CodeXL für OpenCL.

Speicherhierarchien und -zugriffe in GPUs

Definition:

Speicherhierarchien in GPUs optimieren den Datenzugriff und die Leistung. Der Speicher auf GPUs ist hierarchisch aufgebaut, um schnelle Datenzugriffe zu ermöglichen.

Details:

  • Register: Schnellster Speicher, aber begrenzt.
  • Shared Memory: Schnell, wird zwischen Threads eines Blocks geteilt.
  • L1/L2 Cache: Pufferspeicher, der die Zugriffszeiten reduziert.
  • Global Memory: Große Speicherkapazität, aber langsamer Zugriff.
  • Textur- und Konstantenspeicher: Spezialspeicher zur Nutzung bestimmter Datenmuster.
  • Zugriffszeiten: Register < Shared Memory < L1 Cache < L2 Cache < Global Memory.
  • Datenzugriff optimieren durch Koaleszierung bei globalem Speicherzugriff.

Race Conditions: Vermeidung und Umgang

Definition:

Gleichzeitiger Zugriff auf gemeinsame Ressourcen führt zu inkonsistentem Zustand.

Details:

  • Verwendung von Locks und Mutexen zur Synchronisation: \texttt{pthread\textunderscore mutex\textunderscore lock}, \texttt{pthread\textunderscore mutex\textunderscore unlock}
  • Atomare Operationen vermeiden Race Conditions: \texttt{std::atomic}
  • Verwendung von Semaphoren: \texttt{sem\textunderscore wait}, \texttt{sem\textunderscore post}
  • Speicherbarrieren (Memory Barriers) erzwingen Ordnung: \texttt{std::memory\textunderscore order}
  • Entwicklung und Test mit Tools wie \texttt{Helgrind}, \texttt{ThreadSanitizer}

Leistungsbewertung und -optimierung in parallelen Systemen

Definition:

Leistungsbewertung und -optimierung in parallelen Systemen umfasst die Analyse und Verbesserung der Effizienz, Skalierbarkeit und Ressourcennutzung paralleler Rechenarchitekturen.

Details:

  • Leistungskennzahlen: Durchsatz, Latenz, Skalierbarkeit, Effizienz
  • Analyse-Tools: Profiler, Benchmarking
  • Optimierungstechniken: Lastverteilung, Parallelisierungstechniken, Speicherhierarchie-Optimierung
  • Amdahlsches Gesetz: \[ S = \frac{1}{(1 - P) + \frac{P}{N}} \]
  • Gustafsons Gesetz: \[ S = N - (N - 1) * (1 - P) \]
  • Wichtig: Overhead durch Kommunikation und Synchronisation minimieren
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden