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 »
  • Lectures

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
Next Previous

Copyright © 2020, Andrew Lumsdaine
Creative Commons License
Unless otherwise noted, all material on this site are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

© Copyright 2020, Andrew Lumsdaine. Created using Sphinx 3.0.3.