Goals
Describe what an optimizing compiler can optimize for you
Describe what an optimizing compiler can't optimize for you
Understand how linear algebra libraries acheive peak performance through memory access pattern
Describe interaction between global variables and type stability of functions
Explain why parallelism in increasingly important
Describe function overloading & multiple dispatch
Describe benefits of use abstract types and containers of abstract types
Describe benefits of an Application Programming Interface
Project
Second parallel implementation of class project (typically using distributed-memory or GPU)
Lab
Lab 9: Reproducibility: Packages, Environments, Containers & the Cloud (due Nov 14)
Exercise 1: Create a Julia Package
Exercise 2: Use a Workflow management system
Exercise 3: Reflect on your Goals for the semester
Readings
None
Additional Resources
Week 13 Class Discussion: Cloud Computing