CK 903 Parallel and Distributed Systems - W25-26

Logistics

Lecture

See schedule here

Lab / Discussion Session

See schedule here

Instructor

Georgios Bouloukakis

  • Office Hours: Thu 9:00-10:00am

Course Description

The aim of the course is to introduce core concepts of parallelism and distribution, with a strong emphasis on middleware as a software abstraction layer for managing concurrency, data exchange, and system functionality. Topics include synchronization, message passing, consistency, fault tolerance, and distributed scheduling. Several lectures integrate queueing theory to analyze system performance. The course also includes research article presentations and a final project.

This year, students will implement a real-world Parallel and Distributed Systems.

After this course, you should be able to:

  • Explain key concepts in parallel and distributed systems, and the role of middleware in both.
  • Design parallel programs using thread libraries, synchronization primitives, and local middleware.
  • Apply queueing theory to evaluate task scheduling and system performance.
  • Implement distributed data exchange client/server and publish/subscribe interaction paradigms.
  • Analyze and apply strategies for replication, consistency, and fault tolerance.
  • Support distributed scheduling, load balancing, and resource management.

Deliverables and Grading

What Grade % When
Article Presentation 30% 26 Nov 2025
Project 45% 7 Jan 2026
Final Exam 25% TBD
Lecture and Lab Participation up to 10% Every week

Course Policies

  • Article Presentation: Every group has to present one article. More details here.

  • Project Submission: Project slides and code will be submitted on eclass. More details here.

  • Collaboration: You are encouraged to do your project in groups of two. You are allowed to discuss with other classmates or groups but you should eventually complete your project on your own (one submission per group).

  • Q & A: I encourage you to send your questions by email.