InfoCoBuild

6.172 Performance Engineering of Software Systems

6.172 Performance Engineering of Software Systems (Fall 2018, MIT OCW). Instructors: Prof. Charles Leiserson and Prof. Julian Shun. 6.172 is an 18-unit class that provides a hands-on, project-based introduction to building scalable and high-performance software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, caching optimizations, parallel programming, and building scalable systems. The course programming language is C. (from ocw.mit.edu)

Lecture 17 - Synchronization without Locks

Prof. Leiserson discusses non-lock synchronization using memory models, Peterson's algorithm, instruction reordering, and hardware reordering. He discusses the compare-and-swap operation; lock-free stacks, pushes, and pops; and the ABA problem.


Go to the Course Home or watch other lectures:

Lecture 01 - Introduction and Matrix Multiplication
Lecture 02 - Bentley Rules for Optimizing Work
Lecture 03 - Bit Hacks
Lecture 04 - Assembly Language and Computer Architecture
Lecture 05 - C to Assembly
Lecture 06 - Multicore Programming
Lecture 07 - Races and Parallelism
Lecture 08 - Analysis of Multithreaded Algorithms
Lecture 09 - What Compilers can and cannot Do
Lecture 10 - Measurement and Timing
Lecture 11 - Storage Allocation
Lecture 12 - Parallel Storage Allocation
Lecture 13 - The Cilk Runtime System
Lecture 14 - Caching and Cache-Efficient Algorithms
Lecture 15 - Cache-Oblivious Algorithms
Lecture 16 - Non-deterministic Parallel Programming
Lecture 17 - Synchronization without Locks
Lecture 18 - Domain Specific Languages and Autotuning
Lecture 19 - Leiserchess Codewalk
Lecture 20 - Speculative Parallelism and Leiserchess
Lecture 21 - Tuning a TSP Algorism
Lecture 22 - Graph Optimization
Lecture 23 - High Performance in Dynamic Languages