Logistics
Lectures
See schedule here
Instructor
- Office Hours: Mon 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, a mid-term project presentation, and a final project.
Regarding the project, students will have to implement a real-world Parallel and Distributed System.
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.
- Package computation using containers.
- 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% | Every Week |
| Project | 40% | 18/11/2026 & 13/01/2027 |
| Final Exam | 30% | TBD |