Preparing for Class
Week 1
Prior to Friday's class
Log in to the Lynx cluster to verify your account is set up
Read Github tutorial (at least through “Fork a Repo”,)
This week
Think Julia Ch 1: The Way of the Program
The Rationale for Julia: Getting Started with Julia Programming (6pgs avaliable via "First Pages" as Preview/"Look Inside!")
Writing Scientific Software Ch 2 (22pgs): Scientific Computation and numerical analysis
If it will help you with the lab: Think Julia Ch 2: Variables, Expressions & Statements
Week 2
Writing Scientific Software Ch 3: Priorities (6pg)
Writing Scientific Software Ch 4: Famous Disasters (4pg)
Best Practices for Scientific Computing: Sec. 1-4 (6pg)
Best Practices for Scientific Computing: Sec. 5-9 (5pg)
Week 3
Writing Scientific Software Ch 7: Software Design (26pg, ok to skip 7.11-12)
Big-O Cheat Sheet (a useful reference, not to read end-to-end)
Week 4
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)
Week 5
Introduction to High Performance Computing for Scientists and Engineers Ch 2: Serial Optimization (26pg) and/or
Performance Tips (just the bold section headings is enough for now; come back to read more about any specific tip when it applies to your project)
Week 6
Writing Scientific Software Ch 14: Memory Allocation & Garbage Collection (excluding 4.5; 11pg)
Writing Scientific Software Ch 12.1: Caches & memory hierarchies, 12.4 Threashing, 12.5 Designing for memory hierarchies, 12.6 Dynamic data structures and memory hierarchies (pg)
Optionally one of
Introduction to High Performance Computing for Scientists and Engineers Ch 3 Data Access Optimization (excluding 3.1.2, 3.3, 3.3; 20pg)
Introduction to High-Performance Computing Ch 1.7: Programming strategies for high performance (16pg)
Week 7
Prepare for Code Review
Prior to Friday's class
This week
Code Reiew Best Practices from Palantir Blog
Week 8
Introduction to Parallel Computing Sec B-E -or-
Introduction to High-Performance Computing Ch 2.1-2.4: Parallel Computing (19pg) -or-
Introduction to High Performance Computing for Scientists and Engineers:
Ch 4 Parallel Computers (20pg) -and-
Ch 5 Basics of Parallelization (22pg)
Week 9
Distributed Processing with Julia (stop after Parralel Map and Loops)
Week 10
Week 11
Best Practices for Scientific Computing: (Sec 2; yes, let's all read it again!)
Best Practices for Scientific Computing: (Reference list on last page, just in case you didn't notice it before!)
Week 12
Writing Scientific Software Ch 17.1: Make (4pg; if using C/C++ or Fortran for project) -or-
Julia Package Development: Sec. 1-3 (stop after Updating Packages; if using Julia for project)
Week 13-15
None