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

  1. "Parallel Programming: Techniques & Applications Using Networked Workstations & Parallel Computers", 2nd. Edition, B. Wilkinson Michael Allen, Pearson, 2005

Reference(s)

  1. "Introduction to Parallel Computing", 2nd Edition, A. Grama, A. Gupta and G. Karypis, V. Kumar Addison-Wesley 2003.
  2. http://www.hku.hk/cc/sp2/ftp/mpi/MPI_ug_in_FORTRAN.doc
  3. "Using MPI - 2nd Edition: Portable Parallel Programming with the Message Passing Interface (Scientific and Engineering Computation)", William Gropp, 1999
  4. "Parallel Programming with MPI", Peter Pacheco, Morgan Kaufmann, 1997

Prerequisite by Topic


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

  1. Recognize parallelism in computational problems
  2. Explain different parallel systems and their classification
  3. Design parallel algorithms for different applications
  4. Implement parallel algorithms using different programming environments such as MPI and OpenMP.

Topics

  1. Introduction to parallel/cluster computing. (Ch.1.1 of the main text)
  2. Parallel computing platforms 1 (Ch.1.2)
  3. Parallel computing platforms 2 (Ch.1.3-1.4-1.5)
  4. Parallel algorithm design principles 1 (Ch.2 , Ref1-Ch.3)
  5. Parallel algorithm design principles 2 (Ch.3, Ref1-Ch.3)
  6. Parallel algorithm design principles 3 (Ch.4, Ref1-Ch.3)
  7. Synchronous Computations and Load Balancing (Ch.6-Ch.7)
  8. Analytical models for parallel programming 1 (Ref1-Ch.5)
  9. Analytical models for parallel programming 2 (Ref1-Ch.5)
  10. Message Passing with MPI 1 (Ch.2, Ref1-Ch.6)
  11. Message Passing with MPI 2 (Ch.2, Ref1-Ch.6)
  12. 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

  • Midterm Marks
  • Project %30
    Midterm %30
    Final %40

    Documents and other links