CS/ECE 566 Parallel Processing Fall 2018

Meets: TR 5:00 PM - 6:15 PM. Room: LC A7
Call number: 33741 (CS) and 33742 (ECE)

Instructor: Ajay Kshemkalyani

Office: 915 SEO (Office Hours: T 3:40-4:30 PM & by appt.)
Phone: 355-1309
Email: ajay@uic.edu

Grader: Riyansh Karani
Office: SEO 1337 (Office Hours: M 11-12:30pm; W 10:30-12pm)
Email: rkaran3@uic.edu

Prerequisites: CS 401 and CS/ECE 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.
  2. Selection of papers to be studied in class.
Auxiliary resources:
  1. An Overview Chart
  2. UIC's new EXTREME cluster and a list of FAQs and Slides from ACER
  3. The class share for CS/ECE 566 this semester is /export/share/classes/cs-ece566 .
    The tutorial slideshow and MPI demonstration are available in: /export/share/classes/cs-ece566/MPIsample
  4. Technical documentation, MPI instructions
  5. MPI tutorial at Argonne National Lab
  6. Interconnection Networks
  7. Amdahl's Law
  8. The Travelling Salesman Problem
  9. Overhead slides used in class.
  10. The best and the fastest supercomputers! Study this site including the report on HPC benchmarks.
  11. Distributed Shared memory Chapter

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

Course Description:

  1. Various parallel topologies (e.g., hypercube, torus) and algorithms on such topologies
  2. Parallel algorithms for counting, sorting, routing, and graphs
  3. Parallel alogrithms for NP-complete problems
  4. Parallel matrix multiplication, Fast Fourier Transforms
  5. Shared memory parallel systems
  6. Programming using MPI (Message Passing Interface); case studies of systems/platforms
  7. 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 (tentative):