Goals
Describe steps a CPU performs surrounding actual arithmetic
Anticipate when performance will be affected by cache size
Exercises
Fit a model to data
Read & write models using a probabilistic programming language
Estimate uncertainties in model parameters using Markov chain Monte Carlo
Project
Plan data structures to optimize for memory access
Consider whether autodifferentiation and/or probablistic program model is appropriate for your project
Project Proposal
Readings
Prior to Friday's class
Writing Scientific Software Ch 17.3: Profiling (2pg)
This Week
Writing Scientific Software Ch 6: Computer Organization (12pg)
Recommended reading of either:
Introduction to High Performance Computing for Scientists and Engineers Ch 1: Modern Processors (32pg) -or-
Introduction to High-Performance Computing Ch 1-1.3.4.1: Single-processor Computing (13pg)
Lab
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
Additional Resources
Week 4 Class Discussion: Compilation, Code inspection, Vectorization, Memory Hierarchy