Wenn mehrere CPU-Kerne gleichzeitig an einer Aufgabe arbeiten, kommt das Ergebnis nicht automatisch schneller. Die Synchronisierung zwischen verschiedenen Threads kostet nicht nur softwareseitig Rechenzyklen, sondern selbst ein atomic-int> kann viele Wartezyklen zur Folge haben durch die hardwareseitige Synchronisation.
Anhand eines einfachen Zählers wird aufgezeigt, welche Auswirkungen die verschiedenen Synchronisationsmechanismen auf die Performanz und Skalierbarkeit auf paralleler Hardware haben.
Obwohl ein Beispiel in C++ gezeigt wird, ist dieser Vortrag nicht C++-spezifisch. Es geht darum, an einem konkreten Beispiel (mit ganz realen Benchmarkergebnissen) zu zeigen, dass Shared-Memory erhebliche Bremswirkung auf parallelisierte Programme haben kann.
Skills
kein konkretes Vorwissen erforderlich
Lernziele
Verständnis der Auswirkung der Hardwarearchitektur auf die Performance paralleler Systeme.
// Referent
// Detlef Vollmann
ist ein aktives Mitglied des C++-Standardisierungskommitees (hauptsächlich in der Unterkommission zur Concurrency). Er ist einer der (vielen) Autoren des C++ Performance Report und führte die "Futures" in C++11 ein. Er liefert Support und Schulungen zu Embedded-Systemen und Concurrency in C++.