AMATH 483/583 High-Performance Scientific Computing
Course Essentials
Course Calendar
Syllabus
Important Notice for Spring 2020
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 Vector class
Lecture 6: CPUs
Lecture 7: Optimizing for CPUs and Hierarchial Memory
Lecture 8: Opimizing 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 (Part I)
Problem Set #5 (Part II)
Problem Set #6
Problem Set #7 (Part I)
Problem Set #7 (Part II)
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
»
Assignments
Assignments
¶
Problem Set #1
Background
Preliminaries
Warm Up
Exercises
Turning in The Exercises
Problem Set #2
Background
Introduction
Preliminaries
Warm Up
Exercises
Turning in The Exercises
Problem Set #3
Background
Introduction
Preliminaries
Warm Up
Exercises
Turning in the Exercises
Problem Set #4
Background
Introduction
Preliminaries
Warm Up
Exercises
Submitting Your Work
Midterm Evaluation
Background
Introduction
Warm Up
Problems
Submitting Your Work
Problem Set #5 (Part I)
Background
Introduction
Preliminaries
Warm Up
Problems Preview
Submitting Your Work
Problem Set #5 (Part II)
Background
Introduction
Preliminaries
Problems
Submitting Your Work
Problem Set #6
Background
Introduction
Preliminaries
Warm Up
Exercises
Problem Set #7 (Part I)
Background
Introduction
Preliminaries
Warm Up
To Be Continued
Problem Set #7 (Part II)
Background
Introduction
Preliminaries
Warm Up
Problems
Final Exam
Background
Introduction
Iterative Solvers
Preliminaries
Warm Up
Problems
Submitting Your Work