The University of Western Ontario
London, Canada

Department of Computer Science

Distributed and Parallel Systems

Course Web Site -- Fall 2019

Course Description

To best utilize parallel and distributed systems (multi-core, many-core and cluster) is nowadays an essential task for computer scientists.

This course studies the fundamental aspects of parallel systems and aims at providing an integrated view of the various facets of software development on such systems: hardware architectures, programming languages and models, software development tools, software engineering concepts and design patterns, performance modelling and analysis, experimenting and measuring, application to scientific computing.

Course topics may include but are not limited to:

Follow this link for various resources (software tools and tutorials, hardware documentation, conferences, other HPC course web sites, etc.) regarding this course and HPC in general (

Prerequisites for Undergraduate Students


Name:Marc Moreno Maza
Office:MC 327
Office Hours: Tuesdays 13:30-15:20 in MC 327
Phone:661-2111 x3741

Lecture Notes and Textbook

Notes of each lecture will be available on the course website, approximately one or two days after the oral presentation. There is no textbook.

Course and OWL Websites

The course web site is accessible here For CS4402 and CS9635, the OWL web sites are respectively here and there.

Please check the site often for updates on lecture notes and errata. Also be aware that the course website is not a substitute for actual classroom attendance!

Course outline

Please find the course outline here.

Lecture Topics

The list of topics will be something in the order of:

Lecture Notes for 2019-2020

  • An introduction to parallel and distributed computing slides (long version) and slides (short version).
  • Cache memories: complexity analysis and practical issues. slides and C programs.
  • Additional materials: Chapter 4 of the thesis of Sardar Anisul Haque and those slides from Angelina T. Lee.
  • The Fork-Join Model and its Implementation in Cilk slides. Some examples of CilkPlus programs and a few more here.
  • Analysis of Multithreaded Algorithms. slides
  • Parallel Prefix Sum slides
  • Parallel Random-Access Machines. slides
  • Many-core Computing with CUDA. slides and handouts. and simple CUDA programs.
  • High-Performance Computing with CUDA. slides and handouts.
  • Problem Sets for 2019-2020

  • Problem set 1
  • Problem set 2
  • Problem Sets for 2019-2020

  • Problem set 1
  • Problem set 2
  • Quiz corrections from 2014-2015

  • Quiz 1: elements of corrections for a 2014 quiz.
  • A CUDA quiz and its elements of correction.
  • 2015 Quiz 2 with elements of corrections.
  • Quiz corrections from 2016-2017

  • Quiz 1 with elements of corrections.
  • Quiz 2 with elements of corrections.
  • CS4402 projects in 2019-2020

    Please find below papers that can be chosen for the course projects of CS4402.

    Computing Facilities

    Each student will be given an account on the Computer Science Department senior undergraduate computing facility, GAUL. In accepting the GAUL account, a student agrees to abide by the department's

    Note: After-hours access to certain Computer Science lab rooms is by student card. If a student card is lost, a replacement card will no longer open these lab rooms, and the student must bring the new card to a member of the Systems Group in Middlesex College Room 346.

    Marc Moreno Maza
    Last modified: Mon Jan 10 EDT 2017