# 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)