Parallel and Distributed Systems (CMSC5702)

Student/Faculty Expectations on Teaching and Learning

Instructor: Prof. John C.S. Lui

This course introduces concepts, models, and implementations related to parallel and distributed computing.

For parallel computing, we will cover computational models, parallel communication operations, performance and scalability, parallel matrix algorithms, parallel algorithms for solving systems of linear equations, parallel sorting algorithms, parallel graph algorithms, parallel algorithms for dynamic programming, parallel searching algorithms.

For distributed computing, if we have time, we will cover remote procedure calls, distributed time and coordination, distributed replications, concurrency control, commitment protocols, distributed checkpointing algorithms, global state and the snapshot algorithm, ....etc.

Programming assignments will be given so that students can understand the topics discussed in class.


Final Examination


Grading


Teaching Assistant: Mr. Mingshen Sun

Email: please refer to the first lecture note

Related textbooks


Lecture Notes (password protected)

Lecture 1 (Introduction and Models of Parallel Computers)

Lecture 2 (Basic Communication Operations)

Lecture 3 (Performance and Scalability of Parallel Systems)

Lecture 4 (Dense Matrix Algorithms)

Lecture 5 (Various Matrix Algorithms)

Lecture 6 (Parallel Graphs Algorithms)

Lecture 7 (Parallel Dynamic Programming)

Lecture 8 (Synchronization in Distributed Systems)

Lecture 9 (Synchronization in Distributed Systems II)

Lecture 10 (Snapshot Algorithm)

Lecture 11 (Replication, Consistency and Requests Ordering)

Lecture 12 (Fault Tolerance and Distributed Recovery)

Lecture 13 (Distributed Transaction Management)


Lecture on MapReduce/Hadoop (MapReduce/Hadoop Programming: I)

Lecture on MapReduce/Hadoop (MapReduce/Hadoop Programming: II)

Homework (password protected)

Homework Due: May 1, 2015, 11:30 pm


Programming Project (password protected)

Programming Project Due: May 1, 2015, 11:30 pm


Recommended Reading

Title: Structured Parallel Programming: Patterns for Efficient Computation, by Michael McCool, James Reinders
Parallel Programming: for Multicore and Cluster Systems, by Thomas Rauber, Gudula RĂ¼nger
Parallel Programming with Python, by Jan Palach
High Performnace Computing at Amazon