Lectures

  • Lecture 1: Introduction I
  • Lecture 2: Introduction II
  • Lecture 3: OpenMP Programming I
  • Lecture 4: OpenMP Programming II
  • Lecture 5: OpenMP Programming III
  • Lecture 6: OpenMP Programming IV
  • Lecture 7: OpenMP Programming V
  • Lecture 8: OpenMP Programming VI
  • Test #1 [Feb 4, 2025]
  • Lecture 9: POSIX Thread Programming I
  • Lecture 10: POSIX Thread Programming II
  • Lecture 11: POSIX Thread Programming II
  • Lecture 12: POSIX Thread Programming IV
  • Lecture 13: POSIX Thread Programming V
  • Lecture 14: POSIX Thread Programming VI
  • Lecture 15: POSIX Thread Programming VII
  • Test #2 [Mar. 6, 2025]
  • Lecture 16: OpenCL Programming I
  • Lecture 17: OpenCL Programming II
  • Lecture 18: Heterogeneous Computing
  • Lecture 19: Parallel Programming & AI
  • Lecture 20: Parallel Programming & AI
  • Lecture 21: Parallel Programming & AI
  • Test #3 [April 3, 2025 – take home]

LECTURE 1: INTRODUCTION I

LECTURE 2: INTRODUCTION II

  • Overview of a parallel architecture taxonomy. Data-level vs. thread-level parallelism.
  • Slides: [PDF]

LECTURE 3: OpenMP Programming I

LECTURE 4: OPENMP PROGRAMMING II

LECTURE 5: OPENMP PROGRAMMING III

  • Debugging/testing strategies for an OpenMP programs. Programming OpenMP with C using the parallel directive and a critical region.
  • Exercises:
  • Reading: