Introduction and Matrix Multiplication
1:00:20Bentley Rules for Optimizing Work
1:20:10Bit Hacks
1:18:54Assembly Language & Computer Architecture
1:17:34C to Assembly
1:21:30Multicore Programming
1:16:46Races and Parallelism
1:14:39Analysis of Multithreaded Algorithms
1:17:34What Compilers Can and Cannot Do
1:18:46Measurement and Timing
1:21:28Storage Allocation
1:05:26Parallel Storage Allocation
1:17:21The Cilk Runtime System
1:21:47Caching and Cache-Efficient Algorithms
1:18:23Cache-Oblivious Algorithms
1:21:47Nondeterministic Parallel Programming
1:22:12Synchronization Without Locks
1:20:10Domain Specific Languages and Autotuning
1:11:22Speculative Parallelism & Leiserchess
1:23:03Tuning a TSP Algorithm
1:20:53Graph Optimization
1:18:40Measurement and Timing
This session addresses the crucial aspects of reliably measuring software performance, exploring various timing mechanisms and the common pitfalls leading to inaccurate measurements. The use of simulators for performance evaluation is also covered.
MIT 6.172 Performance Engineering of Software Systems, Fall 2018
Instructor: Charles Leiserson
View the complete course: https://ocw.mit.edu/6-172F18
YouTube Playlist: https://www.youtube.com/playlist?list=PLUl4u3cNGP63VIBQVWguXxZZi0566y7Wf
