Relaxed-Semantik

CppMem - Sukzessive Optimierung 2

Dieser Artikel beendet meine Miniserie über CppMem. Heute breche ich die Sequenzielle Konsistenz und tauche damit tief ein in die Expertendomäne.

Weiterlesen...
Kommentar schreibenGelesen: 5194

Multithreaded: Addition mit einer geteilten Variable

Ziel dieses Artikels ist es, die Summe aller Elemente eines Vektors zu bilden. Habe ich es im letzten Artikel mit einem Thread versucht, nütze ich dieses mal die volle Power meiner PCs. Ich verwende eine gemeinsame Summen-Variable, die von allen Threads gleichzeitig benutzt wird. Was bei ersten Hinsehen wie eine gute Idee klingt, ist bei genauerem Blick eine sehr naive Strategie. Überwiegt der Aufwand für die Synchronisation der Summen-Variable deutlich den Performanzvorteil der vier bzw. zwei CPUs.

Weiterlesen...
Kommentar schreibenGelesen: 7605

Sukzessive Optimierung - Relaxed-Semantik

Mit der Relaxed-Semantik gelten keine Synchronisations- und Ordnungsbedingungen auf den atomaren Operationen.

Weiterlesen...
Kommentar schreibenGelesen: 4321

Relaxed-Semantik

Mit der Relaxed-Semantik sind wir am Ende der Skala angelangt. Die Relaxed-Semantik ist das schwächste C++-Speichermodell und sichert nur zu, dass die Operationen auf atomaren Variablen atomar sind.

Weiterlesen...
Kommentar schreibenGelesen: 4352

Synchronisations- und Ordnungsbedingungen

Mit diesem Artikel geht unsere Tour in das C++-Speichermodell ein Stückchen tiefer. Haben sich die bisherigen Artikel mit der Atomizität der atomaren Variablen beschäftigt, so geht es nun um die Synchronisations- und Ordnungsbedingungen von Operationen.

Weiterlesen...
Kommentar schreibenGelesen: 7576

Das C++-Speichermodell

Seit dem C++11-Standard besitzt C++ ein Speichermodell. Dieses Speichermodell ist die elementare Grundlage dafür, das C++ Programme in Multithreading Umgebungen ein definiertes Verhalten haben.

Weiterlesen...
Kommentar schreibenGelesen: 10917

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode