CS546 Parallel and Distributed Processing
Prerequisites
- CS450 Operating Systems
Course Description
This course covers general issues of parallel processing, which include
system, architectures, programming, performance evaluation, and applications. Approximately
one third of the course will be devoted to basic concepts and techniques, and the remaining
two third will be on programming (shared-memory programming, distributed memory programming, GPU programming)
and assorted current topics in parallel
computing. Several textbooks are recommended
as the general guideline of the lecture. Both undergrads and grads are welcome to the class.
Course Materials
-
Textbook
- A. Grama, V. Kumar et al.
- Introduction to Parallel Computing
- Addison Wesley, 2003. (highly recommended)
Gerassimos Barlas
Multicore and GPU Programming: An Integrated Approach
MOrgan Kaufmann, 2014. (highly recommended)
I. Foster
Design and Building Parallel Programs
Addison Wesley, 1995. (recommended)
W. Gropp
Using MPI: Portable Parallel Programming with the Message Passing Interface
MIT Press, 1994. (recommended)
David Kirk and Wen-Wei Hwu
Programming Massively Parallel Processors
Morgan Kaufmann (2nd Edition), 2012. (recommended)
Lectures
- (week 1) Introduction to parallel processing
- (week 2) Parallel platforms and programming models
- (week 3) Parallel performance and evaluation
- (week 4) Shared memory parallel architectures and programming I
- (week 5) Shared memory programming II
- (week 6) GPU architecture and programming
- (week 7) Distributed address space architectures and communications
- (week 8) Exam I
- (week 9) Message passing programming I
- (week 10) Message passing programming II
- (week 11) Data parallel programming
- (week 12) Methodology for parallel algorithms
- (week 13) Data analysis and visualization
- (week 14) Current trends
- (week 15) Exam II
Grading:
- 40% homeworks
- 40% exams
- 20% project & participation