Overview
Explore advanced multicore synchronization primitives in this 46-minute conference talk from C++Now 2017. Delve into lesser-known synchronization mechanisms and their performance properties, with a focus on practical challenges faced by engineers implementing them. Learn about load-linked store conditional operations, pause instructions, prefetching, various lock types including spinlocks and scalable locks, and safe memory reclamation techniques. Examine performance comparisons, latency considerations, and runtime behavior of different synchronization approaches. Gain insights from real-world examples drawn from the Concurrency Kit project, used in mission-critical systems processing billions of transactions daily. Discover resources for further study and open-source implementations to enhance your understanding of complex concurrent systems in C++.
Syllabus
Introduction
Agenda
Before Standard Atomic
After Standard Atomic
LoadLinked Store Conditional
Pause Instructions
PrefetchW
Questions
Primitives
SpinLock and Mutex
Lock
Scalable Locks
Asymmetric Locks
ReadWrite Lock
Sequence Lock
Stronger Progress Guarantees
Safe Memory Reclamation
ReadReclaim Races
HazardPointers
Logical Physical Delete
Grace Period Detection
Read Lock
Performance Comparison
LOC Freedom
Block Freedom
Latency
Runtime
Bring Buffer
Hash Tables
Constraints
Memory Management
Performance
Open Source
Resources
Taught by
CppNow