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.

Next Previous

Copyright © 2020-2022, Andrew Lumsdaine

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

© Copyright 2020-2022, Andrew Lumsdaine. Created using Sphinx 4.5.0.