# CS 759: High Performance Computing for Applications in Engineering

Source: https://wisconsin.twango.dev/fa26-cs759/README

# 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

- [[assignments/HW01/README|Assignment 1]]
- [[assignments/HW02/README|Assignment 2: Scan, Convolution, and Matrix Multiplication]] — due October 2, 2026.
- [[assignments/HW03/README|Assignment 3: OpenMP Matrix Multiplication, Convolution, and Merge Sort]] — due October 16, 2026, at 23:59.
- [[fa26-cs759/assignments/HW04/README|Assignment 4: N-body Simulation and OpenMP Scheduling]] — due October 30, 2026, at 23:59.
- [[fa26-cs759/assignments/HW05/README|Assignment 5: CUDA Kernels and Vector Scaling]] — due November 13, 2026, at 23:59.
- [[assignments/index|Assignments]]
- [[fa26-cs759/final-project/index|Final project]] — kickoff, proposal, presentation, and suggested directions.
- [[lectures/index|Lecture notes]]
- [[lectures/lecture-03|From Code to Machine Instructions]]
- [[lectures/lecture-04|Instruction-Level and Thread-Level Parallelism]]
- [[lectures/lecture-05|Time and Memory Hierarchy]]
- [[lectures/lecture-06|Cache]]
- [[lectures/lecture-07|Towards Parallel Computing]]
- [[lectures/lecture-08|C++ Threads]]
- [[lectures/lecture-09|OpenMP Basics]]
- [[lectures/lecture-10|OpenMP Loop Scheduling]]
- [[lectures/lecture-11|OpenMP Tasking and Variable Scoping]]
- [[fa26-cs759/lectures/lecture-12|OpenMP Synchronization and Reduction]]
- [[fa26-cs759/lectures/lecture-13|N-body Simulation]]
- [[fa26-cs759/lectures/lecture-14|OpenMP Performance, False Sharing, and NUMA]]
- [[fa26-cs759/lectures/lecture-15|GPU Architecture and CUDA Introduction]]
- [[fa26-cs759/lectures/lecture-16|CUDA Kernel Execution Configuration]]
- [[fa26-cs759/lectures/lecture-17|CUDA Kernel Scheduling and Thread Divergence]]
- [[lectures/memory-bandwidth-and-virtual-memory|Bonus: Memory Bandwidth and Virtual Memory]]
- [[course-details|Syllabus and course details]]
- [[textbook/index|Textbooks]]

## Resources

- [Assignment code repository](https://github.com/twangodev/repo759) — checked out locally in `assignments/` as a nested submodule.
- [Canvas](https://canvas.wisc.edu/courses/528487)
- [Piazza via Canvas](https://canvas.wisc.edu/courses/528487/external_tools/20073)
