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 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 code using a container
Exercise 4: Run your project code as a batch job on Lynx
Readings
None
Additional Resources
Week 13 Class Discussion: Cloud Computing