CS 4331: Introduction to Parallel Programming
Fall 2012
4:05-4:55am MWF
129 Fisher

Most recent update: November 16
Handouts and Homework
Program 3 Due: Monday, Dec. 7
vibe.c Sequential source code for Program 3
inprod.c Parallel source code for inner product code
Midterm Exam In class: Wednesday, Nov. 14
Program 2 Due: Wednesday, Nov. 7
Homework 1 Due: Monday, Oct. 15
Program 1 Due: Monday, Oct. 1
MPI ping-pong code (Code updated with a nonblocking message passing example.)
Ping pong output: blocking and nonblocking message passing measurements.
Ping-pong handout.

A parallel program uses more than one processor (from 2 to 216) to solve a single problem. Parallel programs solve problems faster or solve larger problems (or both) than can be solved without the programmer's explicit use of muliple processors. Current examples of such problems include the so-called grand challenge problems. (Contrast this to the concept of distributed processing where many processors are used at the same time but they are used to solve multiple, unrelated problems such as scheduling airline reservations or serving media downloads.) Parallel computing is the only way that many economically and strategically important scientific and engineering problems can be practically solved.

This course shows how to design, write, analyse, debug, and measure the performance of parallel programs. The shared memory and the message passing paradigms will be studied, represented by UPC and MPI, respectively. Other topics include parallel computer architecture, data partitioning strategies, and load balancing. Discrete applications, such as sorting, and numerical applications, such as matrix multiplication, will be treated.

Text (required):
Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers
Barry Wilkinson and Michael Allen, Prentice Hall, 2nd Ed. 2005
ISBN: 0-13-140563-2

Prerequisites: CS 3331, CS 3421 and CS 4321.
Instructor: Steve Seidel
Office hours: 3-4pm Tuesday and Wednesday, and whenever my door is open, and by appointment
Office: 310 Rekhi Hall
Phone: 487-2950
Email: steve@mtu.edu