CS 566 Parallel Processing SP 2006

Meets: M,W 3:00 PM - 4:15 PM. Room: GH 208
Call number: 23108

Instructor: Ajay Kshemkalyani

Office: 915 SEO (Office Hours: W 2:00-2:50PM & by appt.)
Phone: 355-1309
Email: ajayk@cs.uic.edu

Prerequisites: CS 401 and CS 466 or equivalents, or permission of instructor

Required Textbooks/ Sources:

  1. Main text: Introduction to Parallel Computing, by V. Kumar, A. Grama, A. Gupta, G. Karypis, Benjamin-Cummins, 2nd edition, 2003.
    All Chapters except Chapter 7.
  2. Selection of papers to be studied in class. Will be announced around week 4.
Auxiliary resources:
  1. The Argo Beowulf Cluster at UIC, and its MPI tutorial
  2. Interconnection Networks
  3. Overhead slides used in class.
  4. MPI tutorial at Argonne National Lab

Supplemental References and sources:

  1. Introduction to Parallel Algorithms and Architectures, by Thomas Leighton, Morgan Kaufman, latest edition.
    Chapters 1.1, 1.5, 1.6, 1.7, 2.1, 2.2, 2.7, 3.1 - 3.7
  2. Parallel Computation : Models and Methods, by Selim G. Akl / Prentice Hall / April 1997
  3. Highly Parallel Computing (The Benjamin/Cummings Series in Computer Science and Engineering) by George S. Almasi, Allan Gottlieb / Addison-Wesley Pub Co / February 1994
  4. The best and the fastest supercomputers! Overview of Recent Supercomputers! Study these sites, including the report on HPC benchmarks.
  5. MPI Notes from ARGO Sys Admin
  6. Shared memory Chapter

Course Description:

  1. Various parallel topologies and algorithms on such topologies
  2. Parallel algorithms for counting, sorting, routing, and graphs
  3. Parallel matrix multiplication, Fast Fourier Transforms
  4. Shared memory parallel systems
  5. Programming using MPI (Message Passing Interface); case studies of systems/platforms
  6. Special topics

Grading: Grading will be on the curve. The following is only a tentative breakup of the evaluation scheme and is subject to (reasonable) changes as the course progresses. Also depends on the class size.

Course progress chart:

Literature sources: The following is a listing of journals and confernewce proceedings (in roughly decreasing order of relevance to this course 566) that you may find useful in your literature search.

  1. IEEE Transactions on parallel and distributed systems
  2. ACM Symp. on Parallel Algorithms and Architectures (SPAA)
  3. ACM-SIAM Symp. on Discrete Algorithms (SODA)
  4. ACM Symp. on Principles of Distributed Computing (PODC)
  5. IEEE Symp. on Parallel and Distributed Processing (SPDP)
  6. Inter. Conf. on Structure Information and Communication Complexity (SIRROCCO)
  7. Distributed Computing
  8. IEEE/ACM transactions on networking
  9. Information Processing Letters
  10. Inter. Conference on Distributed Computing Systems (ICDCS)
  11. Inter. Conference on Parallel Processing (ICPP)
  12. IEEE Transactions on Computers