6.172 Performance Engineering of Software Systems

6.172 Performance Engineering of Software Systems (Fall 2010, MIT OCW). Instructors: Professor Saman Amarasinghe and Professor Charles Leiserson. This course is 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, cache and memory hierarchy optimization, parallel programming, and building scalable distributed systems. (from

Lecture 01 - Matrix Multiply: A Case Study

Introduction to course, administrative information. Lecture covering matrix multiply as a case study, including matrix representation, performance counters, instruction level optimizations, and parallel execution.

Go to the Course Home or watch other lectures:

Lecture 01 - Matrix Multiply: A Case Study
Lecture 02 - Bit Hacks
Lecture 03 - Basic Performance Engineering
Lecture 04 - Computer Architecture and Performance Engineering
Industry Mentor (MITPOSSE) Overview
Lecture 05 - Performance Engineering with Profiling Tools
Lecture 06 - C to Assembler
Lecture 07 - Memory Systems and Performance Engineering
Lecture 08 - Cache-Efficient Algorithms
Lecture 09 - Cache-Efficient Algorithms II
Lecture 10 - Dynamic Storage Allocation
Lecture 11 - What Compilers Can and Cannot Do
Lecture 12 - Multicore Programming
Lecture 13 - Parallelism and Performance
Lecture 14 - Analysis of Multithreaded Algorithms
Lecture 15 - Nondeterministic Programming
Lecture 16 - Synchronizing without Locks
Lecture 17 - Performance Issues in Parallelization
Lecture 18 - Primer on Ray Tracing Techniques
Lecture 19 - How TokuDB Fractal Tree Indexes Work
Lecture 20 - Distributed Systems
Lecture 21 - Quiz 2 Review
Lecture 22 - A Tale of 10 Bugs: Performance Engineering at VMware
Lecture 23 - Final Competition and Student Feedback