​CSS3153 – Parallel Programming

Course Description

To provide the students with knowledge of parallel programming in the field of parallel computing, so that the students are able to fully utilise the hardware resource in multi-processes and multi-threading software development. ​This course provides the students with knowledge and concept of parallel programming including data parallelism, multiprocessor architecture, process communication, data sharing, synchronous parallelism, multi-computer architecture, message passing programs, replicated workers, and distributed termination detection.

​Content Outline of the Course/Module:

  • Introduction to Software Engineering
  • Introduction to Parallel Computers
  • Message-Passing Programming
  • Embarrassingly Parallel Computations
  • Partitioning and Divide and Conquer Strategies
  • Concept Description
  • Pipelined Computations
  • Synchronous Computations
  • Load Balancing and Termination Detection
  • Programming with Shared Memory
  • Distributed Shared Memory Systems and Programming
  • Parallel Programming Examples

Course Outcome

Upon completion of this course, students should be able to:

  • Evaluate parallel programs by calculating performance measures.
  • Design and write an efficient parallel algorithm for a given problem.
  • Solve and execute grand challenge problems in different fields.
  • Demonstrate the advantage of parallel programming in the commercial industry.
  • Prepare the report to depict the developed project in group assignment.

Subject Area


Course Director

Ting Huong Yong

Teaching-learning Methods​ ​Assessment Methods
​​Lecture Assignment, Progress Test, Final Examination
Tutorial Assignment, Progress Test, Final Examination
Practical Works Assignment, Progress Test, Final Examination
Computer-based Learning Assignment, Progress Test, Final Examination
Assignment Assignment, Presentation