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
»
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 and Visual Studio Code
Mac OS Instructions
Windows Instructions
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 AWS 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
.