Week Lectures Recitations Key Dates


L1: Intro and Matrix Multiplication

R1: Basic Tools

HW1: Basic Tools, C Primer assigned


L2: Bentley’s Rules

L3: Bit Hacks

R2: Profiling

HW2: Profiling assigned

Project 1 Beta assigned


L4: Architecture and Vectorization

L5: C to Assembly

No recitations

HW3: Vectorization assigned

Project 1 Beta Writeup due

Project 1 Final assigned


L6: Multicore Programming

L7: Races and Parallelism

R3: Cilk and Reducers

HW4: Cilk, Reducer Hyperobjects assigned

Project 1 MITPOSSE deadline


L8: Analysis of Multithreaded Algorithms

L9: What Compilers Can and Cannot Do

R4: Analysis of Multithreaded Programs

HW5: Theory of Performance Engineering assigned

Project 1 Final due

Project 2 Beta assigned


L10: Measurement and Timing

R5: Quiz #1 Review

Project 2 Beta due

Project 2 Final assigned


L11: Storage Allocation

R6: Simple, Straightforward Memory Allocation

Quiz #1

HW6: Simple Storage Allocation assigned

Project 2 MITPOSSE deadline


L12: Parallel Storage Allocation

L13: The Cilk Runtime System

R7: Compiler-Inserted Instrumentation

HW7: Dynamic Analysis Tools assigned

Project 2 Final due

Project 3 Beta assigned


L14: Caching and Cache-Efficient Algorithms

L15: Cache-Oblivious Algorithms

R8: Chaching and Cachegrind

HW8: Caching and Cachegrind assigned

Project 3 Beta due

Project 3 Final assigned


L16: Nondeterministic Programming

L17: Synchronization without Locks

R9: Deterministic Execution

HW9: Deterministic Execution assigned

Project 3 MITPOSSE deadline


L18: DSLs and Autotuning

L19: Leiserchess Code Walk

R10: Quiz #2 Review

Project 3 Final due

Project 4 Beta 1 assigned


No lectures

No recitations

Quiz #2


L20: Speculative Parallelism/Project Parallelization Strategies

L21: Guest Lecture

R10: Synchronization Primitives and Examples

HW10: Data Synchronization assigned

Project 4 Beta 1 due

Project 4 Beta 2 assigned


L22: Graph Optimization

L23: Guest Lecture

No recitations

Project 4 Beta 2 due

Project 4 Final assigned

Project 4 MITPOSSE deadline


No lectures

No recitations

Student Presentations due

Course Info

Learning Resource Types

theaters Lecture Videos
assignment Programming Assignments
group_work Projects
notes Lecture Notes
grading Exams with Solutions