MPCS 52018 Advanced Computer Architecture (Spring 2026)

Section 1
Instructor(s) Siegel, Andrew (siegela)
Location None
Meeting Times
Fulfills Core Systems Elective Specialization - High Performance Computing (HPC-2)

Syllabus

This course focuses on computer achitecture from the perspective of a
high performance programmer. It is aimed at students looking to
demistify the process of coding, profiling, and optimizing algorithms,
with a particular focus on systems geared toward performance intensive
computing: clusters, Multicore CPUs, GPUs, RISC-V, ARM, TPUs, etc. The
fundamental principles of computer architecture will be covered in
depth, but an equal emphasis will be given to hands-on experience in
learning how measure, tune, and report performance on common HPC
resources. While a key outcome of the course is the ability to write
more efficient code, the more enduring goal is to educate students to
"see their code" from the hardware's perspective, broadening and
deepening their understanding of programming with potential benefits
across a broad range of disciplines.

Topics include:

-history of HPC architectures
-efficient programming for cache-based serial processors
-MIMD and cache coherency
-efficient programming for multicore processors
-SIMD and vector instructions
-GPU memory and cores
-TPUs, matrix engines, systolic arrays
-ARM

-RISC-V 
 
Students who have taken MPCS 52010 Computer Archtiecture can not take this course.

Course Prerequisites

Required: B+ or higher in Core Programming. Assignments in this class can be done in any programming language. Some assignments will involve manipulating basic snippets of C code, so some basic knowledge of C is assumed (however, students do not need to be proficient in C to take this class).

This is an advanced Core Systems class and we recommend that students take MPCS 51082 Introduction to Unix Systems or MPCS 52011 Introduction to Computer Systems before enrolling in this course.

Other Prerequisites

MPCS 52011 Introduction to Computer Systems recommended.

This course requires competency in Unix and Linux. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/.

Course request information for non-MPCS students: https://masters.cs.uchicago.edu/student-resources/non-mpcs-student-course-requests/

Overlapping Classes

This class is scheduled at a time that does not conflict with any other classes this quarter.

Eligible Programs

MS in Computational Analysis in Public Policy (Year 2) MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors) Masters Program in Computer Science