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
 Final exmination schedule: April 24th, 2015, 7:00 pm to 9:00 pm,
Wu Ho Man Yuen Building (WMY) Room 303.
 Deadline for homework and projet: May 1, 2015, 11:30 pm.
Grading
 Homework: 20%
 Programming Project: 30%
 Final Exam: 50%
(note: Students need to get at least 25%
in the final exam to pass the course)
Teaching Assistant: Mr. Mingshen Sun
Email: please refer to the first lecture note
Related textbooks
 Introduction to Parallel Computing
by V. Kumar, A. Gupta, G. Karypis, V. Kumar
 Distributed Systems: Concepts and Design
by G. Coulouris, J. Dollimore and T. Kindberg (Addison Wesley Press)

Parallel and Distributed Computation:Numerical Methods
by Bertsekas P. Dimitri; John N. Tsitsiklis
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