Parallel and Distributed Technology (2022 spring)

Postgraduate course, Heriot-Watt University, School of Mathematical and Computer Sciences, 2022

Parallel and Distributed Technology

This postgraduate module introduces the principles and practices of parallel and distributed computing. It covers the design and implementation of scalable systems that leverage concurrency and distribution to achieve high performance and fault tolerance.

Course Objectives

  • Understand the fundamentals of parallel and distributed system architectures.
  • Learn programming models for concurrency and distribution.
  • Analyze performance, scalability, and reliability in distributed environments.
  • Gain hands-on experience with tools and frameworks for parallel and distributed programming.

Topics

  1. Introduction to Parallel and Distributed Systems
  2. Shared Memory vs. Distributed Memory Models
  3. Multithreading and Synchronization
  4. Message Passing and MPI
  5. Distributed Algorithms and Consensus
  6. Fault Tolerance and Replication
  7. Cloud and Edge Computing Paradigms
  8. Case Studies and Practical Applications

Reading List

  • Parallel Programming in C with MPI and OpenMP by Michael J. Quinn
  • Distributed Systems: Principles and Paradigms by Andrew S. Tanenbaum and Maarten van Steen