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
Readings
Prior to Monday's class
Writing Scientific Software Ch 6: Computer Organization (12pg)
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)
Prior to Wednesday's class
Writing Scientific Software Ch 17.3: Profiling (2pg)
Project Proposal
Lab
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
Additional Resources
Monday Q&A: Compilation, Code inspection, Vectorization, Memory Hierarchy