Home

Parallelprozesse

Parallelprozesse bezeichnen die gleichzeitige Ausführung mehrerer Aufgaben oder Prozesse auf einem oder mehreren Rechensystemen, um Rechenleistung, Durchsatz oder Reaktionszeit zu verbessern. In der Praxis werden Abhängigkeiten zwischen Tasks minimiert, und Ressourcen wie CPU-Kerne, Speicher oder Netzwerkkapazität effizient genutzt.

Es unterscheidet man grob zwischen Datenparallelität, bei der gleiche Operationen auf unterschiedlichen Daten durchgeführt werden, und

Um Parallelität zu realisieren, kommen verschiedene Architekturen zum Einsatz: Multithreading und Multiprocessing auf einzelnen Rechnern, verteilte

Zu den technischen Herausforderungen gehören Synchronisation, Kommunikations- und Overhead-Kosten, Load Balancing, sowie das Risiko von Deadlocks

Anwendungsbereiche sind numerische Simulationen (z. B. CFD, Finite-Elemente-Methoden), große Datenanalysen, maschinelles Lernen, Rendering und Echtzeitsysteme. Parallelprozesse

Aufgabenparallelität,
bei
der
verschiedene
Aufgaben
gleichzeitig
ausgeführt
werden.
Weiter
kann
man
zwischen
feinkörniger
Parallelität
(fine-grained)
und
grobkörniger
Parallelität
(coarse-grained)
unterscheiden,
sowie
zwischen
synchroner
und
asynchroner
Ausführung.
Systeme
wie
Cluster
oder
Grid-
und
Cloud-Umgebungen,
sowie
GPU-
oder
Hardwarebeschleunigung.
Typische
Programmiermodelle
sind
MPI
(Message
Passing
Interface)
für
verteilte
Systeme,
OpenMP
für
geteilten
Speicher,
CUDA
oder
OpenCL
für
GPUs,
sowie
Frameworks
wie
MapReduce
oder
Apache
Spark
für
datengetriebene
Verarbeitung.
und
Race
Conditions.
Die
Leistungsbeurteilung
orientiert
sich
oft
an
Amdahl's
Gesetz
oder
Gustafsons
Gesetz.
erfordern
sorgfältige
Planung,
entsprechende
Architektur
und
geeignete
Tools,
um
Effizienzgewinne
realisieren
zu
können.