About the Course (Winter 2019)

Calendar Description

According to the 2018-19 Academic Calendar, the course is described as follows:

CSCI 4060U: Massively Parallel Programming. An advanced undergraduate course on programming for multicore and many-core systems. Programming approaches for systems with multiple central processing units (CPUs) will include programming with preprocessor directives (e.g., OpenMP), threads and actors. Programming approaches for systems with many graphical processing units (GPUs) will include programming with task and data parallelism (e.g., OpenCL, CUDA). This course will also discuss challenges in parallel programming including optimization and debugging. 3cr, 3 lec, 1.5 lab. Prerequisite: CSCI 3070U.

Learning Outcomes

  1. Understand the challenges of programming with multicore, many‐core and massively parallel computer systems.
  2. Develop applied knowledge of multicore programming approaches, strategies and design patterns.
  3. Develop applied knowledge of many‐core programming approaches, strategies and design patterns.
  4. Understand how to debug multicore and many‐core source code.

COURSE OUTLINE

The course outline is available here.

MARKING SCHEME

  • Course Project  – 20%
  • Tests (2-3) – 40%
  • Laboratories – 40%