fa26-cs759 cs759fa26cs
CS 759: High Performance Computing for Applications in Engineering CS 759: High Performance Computing for Applications in Engineering
Fall 2026 · UW–Madison
Cross-listed as ECE/ME/EMA/CS 759. The course explores how to choose and implement parallel computing approaches for engineering workloads, with hands-on programming and a final project.
Topics
- Computer architecture, memory, and performance
- GPU programming with CUDA
- Shared-memory parallelism with OpenMP
- Distributed-memory parallelism with MPI
- Matching applications to parallel hardware and programming models
Notes
- Assignment 1
- Assignment 2: Scan, Convolution, and Matrix Multiplication — due October 2, 2026.
- Assignment 3: OpenMP Matrix Multiplication, Convolution, and Merge Sort — due October 16, 2026, at 23:59.
- Assignment 4: N-body Simulation and OpenMP Scheduling — due October 30, 2026, at 23:59.
- Assignment 5: CUDA Kernels and Vector Scaling — due November 13, 2026, at 23:59.
- Assignments
- Final project — kickoff, proposal, presentation, and suggested directions.
- Lecture notes
- From Code to Machine Instructions
- Instruction-Level and Thread-Level Parallelism
- Time and Memory Hierarchy
- Cache
- Towards Parallel Computing
- C++ Threads
- OpenMP Basics
- OpenMP Loop Scheduling
- OpenMP Tasking and Variable Scoping
- OpenMP Synchronization and Reduction
- N-body Simulation
- OpenMP Performance, False Sharing, and NUMA
- GPU Architecture and CUDA Introduction
- CUDA Kernel Execution Configuration
- CUDA Kernel Scheduling and Thread Divergence
- Bonus: Memory Bandwidth and Virtual Memory
- Syllabus and course details
- Textbooks
Resources
- Assignment code repository — checked out locally in
assignments/as a nested submodule. - Canvas
- Piazza via Canvas