Home

Parallelisierbare

Parallelisierbare, im Deutschen ein Adjektiv, beschreibt die Eigenschaft eines Algorithmus oder Problems, sich in mehrere Teilaufgaben zerlegen zu lassen, die parallel bearbeitet werden können. Dadurch lässt sich die Rechenleistung mehrerer Prozessoren, Kerne oder Compute-Units nutzen, um Zeit zu sparen.

Kernkriterien sind die Unabhängigkeit der Teilaufgaben, geringe Synchronisations- und Kommunikationsbedarfe sowie eine angemessene Granularität der Arbeit.

Die Parallelisierbarkeit lässt sich mit Maßen wie der erwarteten Geschwindigkeitsskalierung bewerten. Ein verbreitetes Modell ist Amdahls

Anwendungsbeispiele reichen von Vektor- und Matrizenoperationen über Bild- und Signalverarbeitung bis zu Simulationen, maschinellem Lernen und

Nicht alle Probleme sind parallelisierbar; manche Abhängigkeiten lassen sich nicht beseitigen oder übersteigen mit dem Overhead

Grobgegliederte
Aufgaben
eignen
sich
oft
besser
für
Cluster,
während
feinkörnige
Parallelität
auf
GPUs
oder
Many-Core-Systemen
realisierbar
ist.
Man
unterscheidet
typischerweise
Datenparallelität
(gleiche
Operationen
auf
unterschiedlichen
Datensätzen)
und
Aufgabenparallelität
(unterschiedliche
Operationen
an
unterschiedlichen
Teilen
des
Problems).
Gesetz,
das
besagt,
dass
die
maximale
Beschleunigung
S(p)
durch
den
Anteil
des
Codes
limitiert
wird,
der
wirklich
serial
bleibt:
S(p)
≤
1
/
((1
−
f)
+
f/p),
wobei
f
der
parallelisierbare
Anteil
ist.
In
der
Praxis
spielen
Speicherzugriff,
Kommunikations-
und
Synchronisationsaufwand
eine
entscheidende
Rolle.
Rendering.
Typische
Technologien
sind
OpenMP,
MPI,
CUDA
und
OpenCL.
die
Vorteile.
Die
richtige
Einschätzung
der
Parallelisierbarkeit
ist
zentral
für
die
Leistungsplanung
und
das
Design
skalierbarer
Software.