Labs & Homework Exercises

Lab 1: Tools & Fundamentals: Floating Point Arithmetic, Functions, Tests (Due Aug 30)

Lab 2: Best Practices: Assertions, Unit Testing, Continuous Integrations, Benchmarking (due Sept 6)

  • Exercise 1: Benchmarking, Big-O Analysis, Compute vs Memory Limits

  • Exercise 2: Assertions, Unit Tests & Continuous Integration Testing

  • Exercise 3: Numerical Stability of N-body

Lab 3: Memory Access, Disk I/O, DataFrames (due Sept 13)

  • Exercise 1: Dense Matrix-Vector Multiply: Optimizing serial code, Memory access paterns, Benchmarking

  • Exercise 2: Benchmarking File I/O (no Python dependencies)

  • Exercise 2: Benchmarking File I/O (& Calling Python Packages)

Lab 4: Higher-level Languages & Probabilistic Programming (due Sept 20)

  • Exercise 1: Auto-differentiation & Optimization (as in minimization/maximization of a function)

  • Exercise 2: Probabilistic Programming Language

Lab 5: Serial Optimizations: Profiling, Type Stability, Code Inspection & Optimization Patterns (due Sept 27)

Lab 6: Parallel Programming I: Shared-memory Systems (due Oct 18)

  • Exercise 1: Parallelization for Multi-Core Workstations via Multiple-Threads

  • Exercise 2: Parallelization for Multi-Core Workstations via Multiple Processes

Lab 7: Parallel Programming II: Batch Jobs & Distributed Memory Systems (due Oct 25)

  • Exercise 1: Submitting Batch Jobs to ICS-ACI Cluster

  • Exercise 2: Parallelization for Distributed-memory Systems (e.g., Clusters, Cloud)

  • Exercise 3: Run your project code as a batch job on ICS-ACI

Lab 8: Parallel Programming III: GPUs & Other Hardware Accelerators (due Nov 8)

  • Exercise 1: Getting Setup for GPU Computing & Linear Algebra

  • Exercise 2: GPU Kernels & Array Programming

Lab 9: Reproducibility: Packages, Environments, Containers & the Cloud (due Nov 15)


Reusing & citing this work

If you use any of these materials in academic work (e.g., courses, papers), please cite Ford, Eric B. 2021 doi:10.26207/zt99-ba86. If you use any of these materials in websites, please consider linking to PSU Astro 528: High-Performance Computing for Astrophysics course materials (Fall 2021).

The course materials are licensed as follows: