Labs & Homework Exercises

Lab 1: Tools & Fundamentals: Floating Point Arithmetic, Functions, Tests (Due Sept 3)

  • Exercise 1: Get started using core development tools

  • Exercise 2: Floating Point Arithmetic, Functions, Tests

  • Exercise 3: Personal Goals (save at least 15 minutes for this one)

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

  • Exercise 1: Computational Cost of Numerical Linear Algebra

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

  • Exercise 3: Numerical Stability of N-body

  • Exercise 4: Benchmarking Common Numerical Functions

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

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

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

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

  • 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 Oct 3)

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

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

  • Exercise 1: Submitting Batch Jobs to Lynx Cluster

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

  • Exercise 3: Run your project code as a batch job on Lynx

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

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


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.

The course materials are licensed as follows: