Multicore und Synchronisation

Was trifft nicht als Ursache zu, dass die Leistung eines parallelen Programms bei mehr Kernen nicht wie erwartet steigt?

  1. AViel Synchronisation zwischen Threads, etwa Warten auf Sperren
  2. BEine große Ungleichverteilung der Arbeitsmenge je Thread
  3. CDass jeder Thread nur seine eigenen privaten Daten liest und schreibt
Antwort und Erläuterung anzeigen

Antwort: C. Dass jeder Thread nur seine eigenen privaten Daten liest und schreibt

Zu den Hauptursachen, die die Wirkung der Parallelisierung behindern, gehören nicht parallelisierbare Anteile (Amdahlsches Gesetz), Warten durch Sperren und Barrieren, das Hin- und Herwandern von Cache-Zeilen durch gemeinsame Daten und False Sharing, ungleiche Arbeitsverteilung und mangelnde Speicherbandbreite. Arbeitet jeder Thread nur mit seinen eigenen Daten, entstehen weder Kommunikation noch Warten mit anderen Threads, sodass man der idealen Parallelisierung nahekommt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Multicore und Synchronisation

  1. Welche Aufteilung eignet sich, wenn Schleifendurchläufe auf mehrere Threads verteilt werden und der Rechenaufwand je Durchlauf stark schwankt?
  2. Welche Methode eignet sich leistungsmäßig, um die Summe aller Elemente eines Arrays mit mehreren Threads zu bilden?
  3. Welches Merkmal von Lese-Schreib-Sperren (Reader-Writer-Lock) ist richtig?
  4. Welche Verwendung eines Semaphors mit Zähler ist am treffendsten?
  5. Welcher Unterschied zwischen Cache-Kohärenz und Speicherkonsistenzmodell ist richtig?

Vergleiche zu diesem Thema