Home

parallelisiert

Parallelisierung bezeichnet die Aufteilung eines Problems in mehrere Teilaufgaben, die gleichzeitig ausgeführt werden. Ziel ist es, Rechenleistung zu erhöhen, Rechenzeit zu verkürzen oder die Ressourcenausnutzung zu verbessern. Parallelisierung wird auf unterschiedliche Systeme angewendet, etwa auf Mehrkernprozessoren, Grafikprozessoren (GPUs) und verteilte Systeme. Im Deutschen wird der Begriff auch als „parallelisiert“ verwendet, um Software, Algorithmen oder Arbeiten zu kennzeichnen, die auf mehrere Ausführungseinheiten verteilt sind.

Es unterscheidet sich von der reinen Gleichzeitigkeit (Konkurrenz) durch die tatsächliche gleichzeitige Ausführung von Aufgaben. Man

Technische Ansätze umfassen Multi-Threading (Shared Memory), Multi-Processing (Prozesse), SIMD-Vektor-Instruktionen, GPU-Programmierung (CUDA, OpenCL) sowie verteilte Programmierung (MPI,

Zu den Vorteilen gehören höhere Geschwindigkeit, erhöhter Durchsatz und bessere Ressourcennutzung. Herausforderungen sind Overhead, Synchronisationsbedarf, Datenabhängigkeiten,

Anwendungsgebiete umfassen numerische Simulationen, Rendering, maschinelles Lernen, wissenschaftliche Berechnungen, Big-Data-Verarbeitung und Echtzeitanwendungen.

spricht
oft
von
Datenparallelität
(Data
Parallelism)
bei
gleichem
Ablauf
über
verschiedene
Daten,
und
von
Aufgabenparalellität
(Task
Parallelism)
bei
unterschiedlichen
Aufgaben.
Weitere
Formen
sind
Pipeline-
und
Streaming-Parallelität.
Hadoop/Spark).
Beliebte
Frameworks:
OpenMP,
MPI,
CUDA,
OpenCL,
MapReduce,
Spark.
Race
Conditions,
Debugging-Komplexität,
und
Grenzen
durch
Amdahls
Gesetz.