Course Description
This course provides a systematic treatment of performance engineering—the analysis, measurement, and optimization of software systems. It covers how performance emerges from the interaction between algorithms, programming languages, compilers, operating systems, and modern hardware.
Topics include algorithmic complexity, caching and memory hierarchies, concurrency and synchronization, vectorization, compiler and runtime optimizations, and profiling techniques for both CPU and GPU/accelerator execution. Students will conduct detailed performance studies, apply advanced profiling tools, and design and evaluate optimizations for real systems. The course emphasizes quantitative reasoning, experimental rigor, and clear performance reporting.
Student Learning Objectives
By the end of the course, students will be able to:
- Design statistically sound performance experiments and interpret results (CIs, variance control).
- Use profilers to diagnose front-end, back-end, and memory bottlenecks.
- Understand and diagnose memory-, allocator-, and synchronization-related pathologies; select and validate alternatives.
- Model performance and reason about tail latency.
- Optimize Python and C/C++ code and validate gains with rigorous before/after evidence.
Prerequisites
COMPSCI 490PF meets with COMPSCI 690PF. Instructor consent is required for COMPSCI 490PF. Junior and senior CS majors with grades of at least A- in both COMPSCI 230 and 377 are the level of background in systems that is expected. Past documented experience with GitHub projects is strongly preferred.
This course is project- and experiment-intensive. Students will analyze real software systems, perform quantitative performance measurements, and report results using professional standards. Familiarity with both C/C++ and Python is expected. Undergraduate and graduate sections meet together but have distinct project expectations and grading criteria. Enrollment is capped to support in-depth mentoring and evaluation.
Materials & Tools
Readings: Research papers and tool documentation, available online (see weekly schedule below).
Assessments & Grade Weights
- Projects and Homework — 20%
- Attendance — 10%
- Exams (written/oral) — 70%
Oral Exam Format & Expectations (if applicable)
- Length: ~18–20 minutes per student; individual.
- Structure: Short scenario(s) + whiteboard reasoning + brief code/profiling interpretation.
- Coverage: Everything up to that point (Midterm), and cumulative with emphasis on latter topics (Final).
- Rubric (equal parts): technical accuracy; methodology and attribution reasoning; clarity and communication; evidence-based decision-making.
Grading Scale
490PF: A ≥ 93; A- 90–92; B+ 87–89; B 83–86; B- 80–82; C+ 77–79; C 73–76; C- 70–72; D+ 67–69; D 63–66; F ≤ 62.
690PF: A ≥ 93; A- 90–92; B+ 87–89; B 83–86; B- 80–82; C+ 77–79; C 73–76; F ≤ 72.
Attendance & Policies
Attendance Policy
Attendance is expected; many meetings include in-class activities. For religious observance, following UMass policy, notify the instructor in advance; reasonable accommodations will be provided.
Late & Make-Up Work
- Projects and homework: one full letter grade dropped for every day late (including weekends and vacation days).
- Extensions require documented circumstances.
- Oral exams (if applicable): scheduled windows with sign-ups; missed slots require documented circumstances for a make-up.
Communication
Use email or the course forum (if applicable). For deeper issues, use student hours / appointment hours.
Generative AI Policy
You may use generative AI tools only when explicitly allowed and with full disclosure (tool, prompt, how you validated outputs). Undisclosed or prohibited use may violate academic integrity. You are responsible for the technical correctness of any AI-assisted work and must reproduce all results independently.
Credit-Hour Expectation
This 3-credit course expects approximately 9 hours per week of out-of-class work (readings, problem-solving, projects, oral-exam preparation), in addition to 150 minutes of weekly contact time.
Weekly Schedule (Topics & Key Readings)
- Butler Lampson, “Hints for Computer System Design” (extended/updated version) .
- Mytkowicz et al., “Producing Wrong Data Without Doing Anything Obviously Wrong!”
- Curtsinger & Berger, “Stabilizer: Statistically Sound Performance Evaluation”
In class: profiler walkthrough; classify workloads (front-end vs memory bound).
- Ulrich Drepper, “What Every Programmer Should Know About Memory”
- Williams, Waterman & Patterson, “Roofline: An Insightful Visual Performance Model for Multicore Architectures”
- John Gustafson, “Reevaluating Amdahl’s Law”
- Curtsinger & Berger, “Coz: Finding Code that Counts with Causal Profiling”
- Berger et al., “Hoard: A Scalable Memory Allocator for Multithreaded Applications”
- Powers et al., “Mesh: Compacting Memory for C/C++ Applications”
- Mellor-Crummey & Scott, “Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors”
- McKenney & Walpole, “Read-Copy Update”
- Dean & Barroso, “The Tail at Scale”
- Berger et al., “Triangulating Python Performance Issues with Scalene”
- Roofline resources (CPU/GPU variants), e.g. LBL Roofline Model tutorial
- 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
- Selected postmortems, e.g. curated postmortem collection by Dan Luu
University Policies
Academic Integrity
Academic Integrity Policy: UMass Amherst Academic Integrity Policy
UMass Amherst is strongly committed to academic integrity, which is defined as completing all academic work without cheating, lying, stealing, or receiving unauthorized assistance from any other person, or using any source of information not appropriately authorized or attributed. As a community, we hold each other accountable and support each other’s knowledge and understanding of academic integrity.
Academic dishonesty is prohibited in all programs of the University and includes but is not limited to: cheating, fabrication, plagiarism, lying, and facilitating dishonesty, via analogue and digital means. Sanctions may be imposed on any student who has committed or participated in an academic integrity infraction.
All students at the University of Massachusetts Amherst have read and acknowledged the Commitment to Academic Integrity and are knowingly responsible for completing all work with integrity and in accordance with the policy.
Accommodations Statement
The University of Massachusetts Amherst is committed to making reasonable, effective, and appropriate accommodations to meet the needs of students with disabilities and help create a barrier-free campus. If you have a disability and require accommodations, please register with Disability Services, meet with an Access Coordinator in Disability Services, and send your accommodation letter to your faculty.
Information on services and registration is available on the Disability Services website: https://www.umass.edu/disability/
Title IX Statement
In accordance with Title IX of the Education Amendments of 1972 that prohibits gender-based discrimination in educational settings that receive federal funds, the University of Massachusetts Amherst is committed to providing a safe learning environment for all students, free from all forms of discrimination, including sexual assault, sexual harassment, domestic violence, dating violence, stalking, and retaliation. This includes interactions in person or online through digital platforms and social media.
Title IX also protects against discrimination on the basis of pregnancy, childbirth, false pregnancy, miscarriage, abortion, or related conditions, including recovery. There are resources here on campus to support you. A summary of the available Title IX resources (confidential and non-confidential) can be found at: https://www.umass.edu/titleix/resources. You do not need to make a formal report to access them.
If you need immediate support, you are not alone. Free and confidential support is available 24/7/365 at the SASA Hotline: 413-545-0800.