CS 4331: Introduction to Parallel Programming
Course Information
Fall 2012

Most recent update: Sept. 4

Background The prerequisites of CS 3331, CS 3421 and CS 4321 are all important for this course. The concurrent computing course is a good basis for learning about parallel computing. One of the main differences between the concurrent computing course and this course is that a parallel program written in this course is designed to solve a single problem, whereas in the concurrent computing course there may be many, unrelated tasks competing for the same resources. In parallel computing, the tasks are assumed to cooperate with one another, particularly with regard to the utilization of resources. The architecture course is important because writing efficient parallel programs requires an understanding of machine organization. The algorithms course is obviously important because we will be designing, implementing, and analyzing parallel algorithms.

All programming will be in C using MPI and in UPC. UPC is an extension of C, so C is the only language you need to know to start the course. MPI and UPC will be covered in class.

Course Outline The lectures in the course will generally follow the topics in the Wilkerson textbook. Lectures will diverge from the textbook during the coverage of UPC. The outline here serves to show which topics will be emphasized. The exact scheduling of homework and projects will be done dynamically. Information about the scheduling of exams is given below.

CS 4331 Outline
Chapter  Topic
1  Introduction
2  Message-passing computing (MPI)
3  Embarrassingly parallel computations
4  Divide-and-conquer
6  Synchronous computation
8  Shared memory programming (UPC)
10-13  Selected algorithms
 The other chapters will be given only brief coverage.

Grading is based on a 10% sliding scale: 100%-90% A, 89%-80% B, etc. Course activities will be weighted as given below.

60%: Programming Projects of various individual weights will be assigned. These will consist of about three MPI projects and two UPC projects of various levels of complexity. There will be an opportunity for some of you to replace one project with a research report, to be described later. Most of the projects will be done individually, but some may be done by small groups. More information will be available with each project assignment.

10%: Homework will be assigned from time to time. You may discuss problems with each other but you must write your answers in your own words. All homework assignments will be graded.

15%: Two 1-hour closed-book exams, each worth 7.5%, will be given. These are most likely to be given during the first week of October and the second week of November when your instructor is out of town.

15%: 2-hour final exam. The format of the final exam is like that of the midterm exams, but the final exam will be comprehensive. This exam will be given in the regularly scheduled final exam time slot.


All students in this course are expected to read, understand, and abide by the University's Academic Integrity Policy.


University statements on ADA and Equal Opportunity