About the Course (Winter 2017)

Calendar Description

According to the 2016-17 Academic Calendar, the course is described as follows:

CSCI 4060U: Multicore and Many-core Programming. An advanced undergraduate course on concurrent 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). In addition to concurrent programming, this course will also introduce students to multicore and many‐core debugging strategies. 3cr, 3 lec, 1.5 lab. Prerequisite: CSCI 3070U.

Learning Outcomes

  1. Understand the challenges of programming with multicore and many‐core 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%