CMPS 3640 Distributed and Parallel Computation (3)
Introduction to core topics in distributed and parallel computation. System
models, parallel vs. distributed systems, communication, locality, concurrency,
non-determinism, fault tolerance, distributed algorithms, and parallel
programming.
Prerequisite: CMPS 3600 and 3620
Fundamental concepts of Operating Systems
Networking and communication
Knowledge of a high-level programming language (C preferred)
3 semester units. 2 units lecture (100 minutes), 1 unit lab (150 minutes).
Required for CS
Distributed Systems: Concepts and Design, 5th edition, George Coulouris, Jean
Dollimore, Tim Kindberg, Gordon Blair, Addison-Wesley publishing, 2011, ISBN-13
9780132143011.
A guide to parallel and distributed programming is also recommended for the
laboratory and programming assignments. One such guide is:
Introduction to Reliable and Secure Distributed Programming, Christian Cachin,
Rachid Guerraoui, Luis Rodrigues, Springer, 2011, ISBN-13: 978-3-642-15259-7
(print) and 978-3-642-15260-3 (online).
Melissa Danforth, Donna Meyers
This course covers the following ACM/IEEE CS2013 (Computer Science)
Body of Knowledge student learning outcomes:
Parallel and Distributed Computing (PD):
CS-PD/Parallelism Fundamentals
CS-PD/Parallel Decomposition
CS-PD/Communication and Coordination
CS-PD/Parallel Algorithms, Analysis, and Programming
CS-PD/Parallel Architecture
CS-PD/Distributed Systems
System Fundamentals (SF):
CS-SF/Computational Paradigms
CS-SF/Parallelism
CS-SF/Reliability through Redundancy
The course maps to the following performance indicators for Computer Science
(CAC/ABET):
- (CAC PIc1): Identify constraints on the design problem and establish criteria for acceptability of solutions.
-
- (CAC PIg1): Understand impact of computing solutions on society and the environment in a global economic context.
-
- (CAC PIg3): Consider a variety of available options in computing design and make a proper choice based on their impact.
-
- (CAC PIj1): Understand performance and cost as these relate to software/firmware-based and hardware-based implementations.
-
Week(s) | Chapter(s) | Topics |
1 | Chapters 1 and 7 |
Introduction to distributed systems, Distributed vs. parallel, Review of OS concepts |
2 | Chapters 7, 3 and 11 |
OS review continued, Review of networking concepts and communication security |
3 | Chapter 2 |
System models: fundamental, physical, and architectural |
4 | Chapter 4 |
Communication: interprocess communication |
5 | Chapters 5 and 6 |
Communication: remote invocation and indirect communication |
6 | Chapter 14 |
Distributed algorithms: introduction, time and state |
7 | Chapters 14 and 15 |
Distributed algorithms: time and state continued, coordination and agreement |
8 | Chapter 15 |
Distributed algorithms: coordination and agreement continued |
9 | Chapter 16 |
Shared Data: transactions and concurrency |
10 | Chapters 16 and 17 |
Shared Data: distributed transactions |
11 | Chapters 17 and 18 |
Shared Data: redundancy, replication, fault tolerance |
12 | Outside Information |
Programming challenges with distributed algorithms and parallel architecture |
13 | Chapters 8 and 10 |
Middleware: objects and components, services |
14 | Chapters 12 and 13 |
Distributed systems in practice: file systems, name services |
15 | Chapters 19 and 20 |
New paradigms: Ubiquitous computing and Cloud services |
Not applicable to this course.
Melissa Danforth on 31 July 2014
Approved by CEE/CS Department on [date]
Effective Fall 2016