Lectures

Lectures are designed for synchronous delivery. It is not expected that the recorded version is an adequate substitute for attending.

Recorded lectures are available on Panopto through Blackboard. Log in to blackboard. Lectures are named LecXX.[Topic].[Date].mp4. Although Panopto is inconvenient, it is the only way to control access to lectures to enrolled students.

The Jupyter notebooks for lectures should be synced from gigantum following the instructions in gigantum.html. Notebooks with filenames 0X_lecture_name.ipynb are found in this project.

Projects

Late Hours

A total of 48 late hours are permitted per semester to use as needed for projects. Late hours will be rounded up to the nearest hour, e.g. a project submitted 2.5 hours late will count as using 3 late hours.

Course Schedule

(31 August) Introduction to Parallel Programming and Gigantum

Parallelism in modern computer architectures. Performance beyond computational complexity. An introduction to the Gigantum environment for reproducibility and sharability.

  • Reading:
    • Chapter 1, Patterns for Parallel Programming
  • Lectures:
    • Introduction to Parallel Programming: 01_intro.ipynb
    • Gigantum
  • sli.do event: https://www.slido.com event code #64704

(2 September) Amdahl’s Law, Strong Scaling, and Parallel Efficiency

Amdahl’s law is the fundamental principle behind strong scaling in parallel computing. Strong scaling is the process of solving a problem of the fixed size faster with parallel resources.

(9 September) OpenMP

Lecture 3: An introduction to parallelizing serial programs based on compiler directives. Also serial equivalence, and loop parallel constructs.

(16 September) Cache Hierarchy

Lecture 4: Memory hierarchy and latency. Caching concepts: size, lines, associativity, and inclusion/exclusion. Caching microbenchmarks.

(18 September) Loop Optimization

Lecture 5: Loop Optimizations