Writing Concurrent Code with Lock-Free Algorithms

PT9913
Summary
This is a truly inspiring and challenging course for Java and C++ programmers interested in building low-latency, high-throughput systems.Taking a unique hardware-up approach, you will be taught how to build code that reaches world-class performance levels.
Prerequisites
There are no prerequisites for this course.
Duration
3 Days/Lecture & Labs
Topics
  • Understanding Mechanical Sympathy
  • Performance considerations on modern hardware
  • How modern x86-64 hardware informs concurrent and high performance programming techniques
  • Memory models for software and hardware
  • Why contention of any type is the enemy and how to avoid it
  • How we manage contention when we absolutely must
  • How the JVM provides support for concurrent programs
  • Profiling and performance testing
  • Concurrent and High-performance Algorithm Design
  • Lock-free concurrency primitives
  • Signaling state change
  • Ensuring order
  • Concurrent data structures - Queues, Dynamic Lists, Executors, Shared memory IPC, Locks
  • Preventing speculative execution during critical data exchanges
  • Managing contended state
  • Wait-free techniques
  • API design to avoid the latency J-curve
  • Efficient back-off strategies
  • Discovering hidden contention and how to avoid it

Related Scheduled Courses