AMATH 483/583 High-Performance Scientific Computing
Course Essentials
Course Calendar
Syllabus
Important Notice for Spring 2022
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: BLAS, Roofline Model, Strassen’s Algorithm
Lecture 9: Strassen’s Algorithm. Sparse Matrices.
Lecture 10: Introduction to Concurrency and Parallel Computing
Lecture 11: Shared Memory Parallelism, Correctness, Performance
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
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
Set Up Your Development Environment (Without 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 Hyak 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
Spring 2020 AMATH 483/583
Spring 2021 AMATH 483/583
Bibliography
AMATH 483/583 High-Performance Scientific Computing
Table of Contents
»
Excursus
Excursus
¶
The Pre Processor
Include Guards
Docker
Virtualization
Install Docker
Mac OS X
Windows 10
Verify Your Docker Installation
Install the AMATH583 Docker Image
Connect to Your Local Workspace
Explanation.
Docker Copy
Docker and Visual Studio Code
Mac OS Instructions
Windows Instructions
Set Up Your Development Environment (Without Docker)
Windows 10
Mac OS X
Linux
Warm Up
The Shell
The Shell from vscode
Help and Documentation
Explore
Creating and Editing Files
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)
Question: Why use sparse computation when dense computation is so much faster?
Connecting to Hyak with Visual Studio Code
A note on encryption for those interested
Transmitting a Private Key
Footnotes
1
Excursus
appears to be a fourth-declension noun and so the plural is
excursus
.