Welcome to COMP4300/8300 Parallel Systems, 2023!

This is an honours/master level course that covers a variety of topics related to parallel computing systems. In particular, we will cover, among others:

  • The general principles and techniques which can be used to divide up a computation into concurrent tasks;
  • How these can be expressed using the abstractions available in a variety of suitable parallel programming languages; and
  • The underlying parallel hardware organizations that implement such programming abstractions.

Along the way, we will explore the current state of high-end computing both for computationally- and data-intensive computing.

The course labs and assignments will make use of the Gadi supercomputer located on-campus at the National Computational Infrastructure facility.

Course schedule at a glance

The schedule below should be regarded as indicative for more than 2 weeks in advance.

L1/2 Mon 2-4PM
L3 Tue 12-1PM
 Labs /  
01: Feb 20 Introduction; Classic Parallel Hardware  
02: Feb 27 Message Passing; Performance Modeling Lab #1
03: Mar 06 Embarrassingly Parallel Problems; Routing/Comm Lab #2
04: Mar 13 Canberra Day Synchronous computations Lab #3
05: Mar 20 Pipelining; Partitioning (I) Lab Ass #1
06: Mar 27 Partitioning (II); Mid Semester Outlook and Exam Review Mid Semester Exam (12-1PM, Birch Building, rooms 1.08 & 1.09 (arrive 15 mins earlier!))  
Mid Semester Break (Monday April 3 - Friday April 14 inclusive)
07: Apr 17 Motivation for Parallel Computers, Shared Memory Programming Ass #1 due
08: Apr 24 Thread Synchronization, OpenMP Part I Anzac Day Lab #4
09: May 01 OpenMP Part II, Simultanous Multi-Threading, Single Instruction Multiple Data Lab #5
10: May 8 Introduction to GPUs, GPU SM architecture & Execution Model, Intro to GPU Memory Management Lab #6
11: May 15 GPU Memory Management: Global and Shared Memory, CPU Cache Coherence Lab Ass #2
12: May 22 Performance Analysis with the Roofline Model (CPU & GPU), Outlook and Course Review Ass #2 due
Final Exam. 09/06/2023, 2:30PM. Room: TBA


  • The Programs & Courses prerequisites of this course can be found here. They are not that essential, though. While this is an advanced course, intellectual maturity is more important than specifics. Students interested in taking this course and not meeting the formal prerequisites are encouraged to apply for a permission code, highlighting any background in computer organization, threading, networks and C programming. Applications will be considered on a case-by-case basis.

  • The course uses C as its programming language. No explicit activity time will be devoted to training in C. Thus, students unfamiliar with the language should teach themselves from online resources (ASAP!). To this end, we recommend the resources on the textbook page.


  • For all details regarding how the course will be assessed, please click here.


  • Timetabling, schedule, and organization of the lectures can be found here.


  • Timetabling, schedule, and organization of the labs can be found here.
  • VERY IMPORTANT: please register your lab group preferences before the end of Week 1. See here for more details.


  • Click here to access Piazza. We will use this platform for communication among students and teaching staff.
  • Making private enquiries on Piazza is preferred over using email.
  • We encourage students to post course-related queries and issues to the course Discussion forum on Piazza.
  • Invitations will be sent via email to enrolled students on Monday of Week 1.
  • Please see the first post for the rules on using the forum. Class polls will also be conducted on this forum.


  • The course Wattle page is available here.
  • We will solely use Wattle to publish Echo360 and Zoom lecture recordings and students’ marks on the different assessment items
bars search times arrow-up