CS525: Parallel Computing
Spring 2012.
Ananth Grama, ayg@cs.purdue.edu, 494 6964
Tu/Th 1:30 - 2:50 PM
LWSN B151
Office Hours:
W, 3:00 - 4:30, and by appointment.
TA: Karthik Kambatl (kkambatl@cs.purdue.edu)
Course Announcements:
Important announcements relating to the course will be made here. Please
look at this area of the web page periodically. Announcements will include
(but are not limited to) release of assignments, erratas, and grades.
Assignment 1:
Problems 2.6, 2.12, 2.13, 2.20, 2.23, 2.24, and 2.25 of the text
`Introduction to Parallel Computing', by Grama et al. Deadline, Feb 14, 2012.
Assignment 2:
Problems 5.4, 5.5, 5.9, 5.10, 5.11, and 5.13 of the text `Introduction to
Parallel Computing', by Grama et al. Deadline, Feb 28, 2012 in class.
Assignment 3:
Problems 4.5, 4.8, 4.16, 4.18 and 4.20, of the text `Introduction to
Parallel Computing', by Grama et al. Deadline, Mar 22, 2012 in class.
Assignment 4:
Program pqsort(int *a, int len, int num_threads) as described in class.
Deadline, Mar 29, 2010 in class.
Important: Here is the grading criteria for your assignment: 30% points
for programs that execute correctly. 70% of the points for performance.
All programs will be run on an Intel Quad-core machine. If you get a
speedup of more than 3.5 on 4 processors, you will get all 70%. If you
get a speedup of between 3 and 3.5, you get 50%, 2.5 and 3, you get 30%,
1.5 - 2.5, you get 15%. No points for under speedup of 1.5. These speedups
are for the largest problem instance your program can execute.
Assignment 5:
Program MPI version of quicksort as described in class (also on pg 409, 410
of the text -- assume equipartition of processors across the two lists).
Deadline, Apr 19, 2012 in class.
Performance targets: speedup of 6 on 8 processors gets you 100%, 5 on 8
gets you 75%, 4 on 8 gets you 50%. 2 on 8 gets you 30%, a functioning
program gets you 20%.
Assignment 6:
Problems 8.3, 8.5, 8.12, 8.17, 9.3, 9.23, 9.29, 10.1, 10.2 from the text `Introduction to
Parallel Computing', by Grama et al. Deadline, Apr 26, 2012 in class.
Please read this policy before starting as I intend on enforcing it
strictly.
Grading Policy
50% classwork (assignments + project), 50% exams (30%final + 20% midterm)
Course Contents
CS525, Parallel Computing deals with emerging trends in the use of large scale computing platforms ranging from desktop multicore processors, tightly coupled SMPs, message passing platforms, and state-of-the-art virtualized cloud computing environments . The course consists of four major parts:
-
Parallel and distributed platforms: This part of the class outlines parallel
computing hardware. Topics covered include processor and memory architectures,
SMP and message passing hardware, interconnection networks, network hardware,
and evaluation metrics for architectures. Cost models for communication are
also developed.
-
Parallel Programming: Programming models and language support for programming
parallel platforms is discussed in this part. Message passing using MPI,
thread-based programming using POSIX threads, and directive-based programming
using OpenMP will be discussed.
-
Parallel and Distributed Algorithms: Starting from design principles for parallel algorithms,
this part develops parallel algorithms for a variety of problems. Various
metrics for evaluating these algorithms are also discussed.
-
Applications: A variety of parallel applications from diverse domains such
as data analysis, graphics and visualization, particle dynamics, and
discrete event and direct numerical simulations will be discussed.