AMATH 483/583 High-Performance Scientific Computing
Course Essentials
Course Calendar
Syllabus
Important Notice for Spring 2021
Grading Policies and Procedures
Computer Usage and Requirement
Course Collaboration
Academic Honesty
Recommendations
Course Errata
Lectures
Lecture 1: Course Overview and Introduction to HPC
Lecture 2: Starting out with C++
Lecture 3: Further Adventures in Programming with C++
Lecture 4: The Vector class
Lecture 5: The Matrix class
Lecture 6: CPUs
Lecture 7: Optimizing for CPUs and Hierarchial Memory
Lecture 8: Optimizing Dense Matrix-Matrix Product
Lecture 9: Strassen’s Algorithm. Sparse Matrices.
Lecture 10: Introduction to Concurrency and Parallel Computing
Lecture 11: Parallelization and Scalability
Lecture 12: Tasks, async, C++ Concurrency
Lecture 13: Two-Norm, PageRank, Lambda
Lecture 14: OpenMP
Lecture 15: GPUs
Lecture 16: GPUs
Lecture 17: Distributed Memory
Lecture 18: Message Passing
Lecture 19: The Message Passing Interface
Lecture 20: Cannon’s Algorithm
Lecture 21 (Bonus): Templates and Generic Programming
Lecture 22 (Bonus): C++ Standard Library
Assignments
Problem Set #1
Problem Set #2
Problem Set #3
Problem Set #4
Midterm Evaluation
Problem Set #5
Problem Set #6
Problem Set #7
Problem Set #8
Final Exam
Excursus
The Pre Processor
Docker
Walkthrough of Performance Profiling
Memory Management (Or: I got a segmentation violation, now what?)
Walkthrough of the Basic Basics of Using a Symbolic Debugger
Function Objects
More on Lambda
Sparse vs Dense Computation (Or, How to be Faster while Being Slower)
Connecting to AWS with Visual Studio Code
A note on encryption for those interested
Additional Resources
Texts and Other Useful References
Accessing Amazon Web Services (AWS) Servers
Tutorial: Modern C++ for High Performance Computing
Spring 2019 AMATH 483/583
Bibliography
Julia Set Image Gallery
AMATH 483/583 High-Performance Scientific Computing
Table of Contents
»
Syllabus
Syllabus
¶
Important Notice for Spring 2021
Grading Policies and Procedures
Homework
Late Work
You Have One Challenge Flag
Grace Days
Exams
Grade Calculation
Computer Usage and Requirement
Your laptop is a supercomputer
Supercomputers are not personal computers
If your laptop won’t run Docker (or other tools)
Beyond your laptop
Course Collaboration
Piazza
Academic Honesty
Recommendations
Course Errata
Lectures and Lecture Slides
Course Notes
Homework Assignments