Multicore und Synchronisation

Welche Aussage zur in parallelen Programmen verwendeten Barrierensynchronisation ist richtig?

  1. ASie schafft einen Programmteil, den nur ein Thread gleichzeitig betreten darf
  2. BSie lässt früher eintreffende Threads warten, bis alle Threads diesen Punkt erreicht haben
  3. CSie ist ein Befehl, der die Umordnung von Speicheroperationen verhindert
Antwort und Erläuterung anzeigen

Antwort: B. Sie lässt früher eintreffende Threads warten, bis alle Threads diesen Punkt erreicht haben

In Simulationen u. Ä. müssen alle Threads die Berechnung eines Schritts abgeschlossen haben, bevor zum nächsten Schritt übergegangen wird. Bei der Barrierensynchronisation hält jeder Thread am Barrierenpunkt an, und sobald der letzte Thread eintrifft, laufen alle weiter. Ist der Rechenaufwand ungleich verteilt, warten schnelle Threads länger auf langsame, weshalb eine gleichmäßige Arbeitsaufteilung für die Leistung wichtig ist.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Multicore und Synchronisation

  1. Aktualisieren 64 Kerne einen einzigen gemeinsamen Zähler fortwährend gleichzeitig mit atomaren Befehlen, wird es auch mit mehr Kernen nicht schneller. Was ist der Hauptgrund?
  2. Welche Aussage zu NUMA-Systemen (Non-Uniform Memory Access) ist richtig?
  3. Was ist bei der unter Linux in NUMA-Systemen häufig verwendeten First-Touch-Strategie (die Seite wird im Speicher des Knotens abgelegt, auf dem der Thread läuft, der sie als Erster beschreibt) zu beachten?
  4. Was trifft nicht als Ursache zu, dass die Leistung eines parallelen Programms bei mehr Kernen nicht wie erwartet steigt?
  5. Welche Aufteilung eignet sich, wenn Schleifendurchläufe auf mehrere Threads verteilt werden und der Rechenaufwand je Durchlauf stark schwankt?

Vergleiche zu diesem Thema