COMPE 472 Parallel Computing
2010-2011 (I)
Catalog Data
Models of parallel computing - dependence on architecture, trade-off
between computation cost and communication cost. Performance measures
for parallel computation - computational complexity. Techniques for
parallel computation - divide and conquer, partitioning, pipelining, etc.
Parallel algorithms for merging, sorting and searching. Parallel
computation involving matrices.
Text Book
- "Parallel Programming: Techniques & Applications Using Networked Workstations & Parallel Computers", 2nd. Edition,
B. Wilkinson Michael Allen, Pearson, 2005
Reference(s)
- "Introduction to Parallel Computing", 2nd Edition, A. Grama, A. Gupta and G. Karypis, V. Kumar Addison-Wesley 2003.
- http://www.hku.hk/cc/sp2/ftp/mpi/MPI_ug_in_FORTRAN.doc
- "Using MPI - 2nd Edition: Portable Parallel Programming with the Message Passing Interface (Scientific and Engineering Computation)", William Gropp, 1999
- "Parallel Programming with MPI", Peter Pacheco, Morgan Kaufmann, 1997
Prerequisite by Topic
- Programming concepts
- Computer Architecture (concepts)
- Basic Numerical Methods
Goals
The objective of this course is to teach parallel computer architectures and
parallel computing programming and tools. It also aims at teaching
different programming paradigms for parallelizing different engineering
problems.
Objectives
- Recognize parallelism in computational problems
- Explain different parallel systems and their classification
- Design parallel algorithms for different applications
- Implement parallel algorithms using different programming environments such as MPI and OpenMP.
Topics
- Introduction to parallel/cluster computing. (Ch.1.1 of the main text)
- Parallel computing platforms 1 (Ch.1.2)
- Parallel computing platforms 2 (Ch.1.3-1.4-1.5)
- Parallel algorithm design principles 1 (Ch.2 , Ref1-Ch.3)
- Parallel algorithm design principles 2 (Ch.3, Ref1-Ch.3)
- Parallel algorithm design principles 3 (Ch.4, Ref1-Ch.3)
- Synchronous Computations and Load Balancing (Ch.6-Ch.7)
- Analytical models for parallel programming 1 (Ref1-Ch.5)
- Analytical models for parallel programming 2 (Ref1-Ch.5)
- Message Passing with MPI 1 (Ch.2, Ref1-Ch.6)
- Message Passing with MPI 2 (Ch.2, Ref1-Ch.6)
- Developing parallel programs with MPI (Ch.10-11, Ref1-Chs.8-9-10)
Laboratory Projects
Students will develop a parallel code for various scientific problems using MPI paradigm.
Grading
Documents and other links