Weekly Schedule (Topics & Key Readings)
Readings assigned for each week are expected to be completed by the first class of that week so that they can be discussed in class.
Week 1 (2/2 – 2/6) — Principles & Pitfalls; Reproducibility
-
Butler Lampson,
"Hints for Computer System Design"
.
- Not required, but for reference: extended/updated version .
Week 2 (2/9 – 2/13) — Methodology You Can Trust
- Mytkowicz et al., "Producing Wrong Data Without Doing Anything Obviously Wrong!"
- Curtsinger & Berger, "Stabilizer: Statistically Sound Performance Evaluation"
Week 3 (2/16 – 2/20) — Top-Down Microarchitectural Analysis (TMA)
No class on Monday 2/16, class moved to Thursday 2/19.
In class: profiler walkthrough; classify workloads (front-end vs memory bound).
Week 4 (2/23 – 2/27) — Memory Hierarchy & NUMA
- Ulrich Drepper, "What Every Programmer Should Know About Memory"
Week 5 (3/2 – 3/6) — Modeling: Amdahl/Gustafson, Roofline, Little's Law
- Williams, Waterman & Patterson, "Roofline: An Insightful Visual Performance Model for Multicore Architectures"
- John Gustafson, "Reevaluating Amdahl's Law"
Week 6 (3/9 – 3/13) — Causal Profiling (Coz)
- Curtsinger & Berger, "Coz: Finding Code that Counts with Causal Profiling"
Week 7 (3/16 – 3/20) — Spring Break
No classes this week.
Week 8 (3/23 – 3/27) — Memory Allocators & Fragmentation
- Berger et al., "Hoard: A Scalable Memory Allocator for Multithreaded Applications"
- Powers et al., "Mesh: Compacting Memory for C/C++ Applications"
Week 9 (3/30 – 4/3) — Concurrency & Synchronization
- Mellor-Crummey & Scott, "Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors"
- McKenney & Walpole, "Read-Copy Update"
Week 10 (4/6 – 4/10) — Tail Latency in Distributed Systems
- Dean & Barroso, "The Tail at Scale"
Week 11 (4/13 – 4/17) — Python Performance in Practice
- Berger et al., "Triangulating Python Performance Issues with Scalene"
Week 12 (4/20 – 4/24) — Vectorization & GPUs
No class on Monday 4/20, class moved to Friday 4/24.
- TBD
Week 13 (4/27 – 5/1) — Benchmarking the Right Way
- Jim Gray, "A Measure of Transaction Processing Power"
- Jim Gray (20 years later), "A Measure of Transaction Processing Power — 20 Years Later"
- Gernot Heiser, "Systems Benchmarking Crimes"
- ACM SIGPLAN, Empirical Evaluation Guidelines
Week 14 (5/4 – 5/8) — Case Studies & War Stories
- Selected postmortems, e.g. curated postmortem collection by Dan Luu