Lock-free and high-performance concurrent algorithms

Lock-free and high-performance concurrent algorithms

Seacliff B

Candidates in this workshop will be introduced to a completely new way of thinking about concurrent programming. By taking a hardware up, rather than theory down, approach you'll learn how modern x86 hardware operates and how when you show sympathy for this hardware your algorithms will absolutely scream. In addition to learning the basic techniques of building high-performance data structures, a performance testing and profiling discipline will be introduced that is fundamental to working at the extremes of systems performance.
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 
  • Signalling state change 
  • Ensuring order 
  • Concurrent data structures  

Candidate Requirements

  • Experience of the Java Programming Language. 
  • A laptop capable of running 4 concurrent threads - This can be a dual core with hyperthreading enabled 
  • Java 5+, and Ant 1.8+ installed, plus IDE of your choice 
  • More advanced profiling techniques can be demonstrated if running Linux