COMP 322: Fundamentals of Parallel Programming
Instructor: |
Staff: |
Sanjay Chatterjee (DH 2068) |
|
---|---|---|---|
|
|
|
|
|
|
|
Christopher Nunu |
|
|
|
Max Grossman |
Lectures: |
Duncan Hall (DH) 1042 |
Time: |
MWF 1:00-01:50pm |
Labs: |
Ryon 102 |
Times: |
Tuesday 2:30-3:50pm (Sec 1), Wednesday 3:30-4:50pm (Sec 2) |
Introduction
The goal of COMP 322 is to introduce you to the fundamentals of parallel programming and parallel algorithms, using a pedagogical approach that exposes you to the intellectual challenges in parallel software without enmeshing you in low-level details of different parallel systems. To that end, the main pre-requisite course requirement is COMP 211 or equivalent. This course should be accessible to anyone familiar with the foundations of sequential algorithms and data structures, and with basic Java programming. COMP 221 is also recommended as a co-requisite.
The pedagogical approach will introduce you to the following foundations of parallel programming:
- Primitive constructs for task creation & termination, collective & point-to-point synchronization, task and data distribution, and data parallelism
- Abstract models of parallel computees and computation graphs
- Parallel algorithms and data structures including lists, strings, trees, graphs, matrices
- Common parallel programming patterns including task parallelism, undirected and directed synchronization, data parallelism, divide-and-conquer parallelism, map-reduce, concurrent event processing including graphical user interfaces.
Laboratory assignments will explore these topics through a simple parallel extension to the Java language called Habanero-Java (HJ), developed in the Habanero Multicore Software Research project at Rice University. The use of Java will be confined to a subset of the language that should also be accessible to C programmers --- no advanced Java features will be used. An abstract performance model for HJ programs will be available to aid you in complexity analysis of parallel programs before you embark on performance evaluations on real parallel machines. We will conclude the course by introducing you to some real-world parallel programming models including the Java Concurrency Utilities, CUDA and Google's MapReduce. The foundations gained in this course will prepare you for advanced courses on Parallel Computing offered at Rice (COMP 422, COMP 522).
Since the aim of the course is for you to gain both theoretical and practical knowledge of the foundations of parallel programming, the weightage for course work will be balanced across written assignments, programming assignments, and exams.
Course Schedule
|
Day |
Date(2009) |
Topic |
Handouts |
Slides |
Homework Assigned |
Homework Due |
---|---|---|---|---|---|---|---|
1 |
Mon |
Jan 10 |
Lecture 1: The What and Why of Parallel Programming |
|
|
|
|
2 |
Wed |
Jan 12 |
|
|
|
|
|
3 |
Fri |
Jan 14 |
|
|
|
|
|
- |
Mon |
Jan 17 |
School Holiday |
|
|
|
|
4 |
Wed |
Jan 19 |
|
|
|
|
|
5 |
Fri |
Jan 21 |
|
|
|
|
|
6 |
Mon |
Jan 24 |
|
|
|
|
|
7 |
Wed |
Jan 26 |
|
|
|
|
|
8 |
Fri |
Jan 28 |
|
|
|
|
|
9 |
Mon |
Jan 31 |
|
|
|
|
|
10 |
Wed |
Feb 02 |
|
|
|
|
|
11 |
Fri |
Feb 04 |
|
|
|
|
|
12 |
Mon |
Feb 07 |
|
|
|
|
|
13 |
Wed |
Feb 09 |
|
|
|
|
|
14 |
Fri |
Feb 11 |
|
|
|
|
|
15 |
Mon |
Feb 14 |
|
|
|
|
|
16 |
Wed |
Feb 16 |
|
|
|
|
|
17 |
Fri |
Feb 18 |
|
|
|
|
|
18 |
Mon |
Feb 21 |
|
|
|
|
|
19 |
Wed |
Feb 23 |
|
|
|
|
|
20 |
Fri |
Feb 25 |
|
|
|
|
|
- |
M-F |
Feb 28 - Mar 04 |
Spring Break |
|
|
|
|
21 |
Mon |
Mar 07 |
|
|
|
|
|
22 |
Wed |
Mar 09 |
|
|
|
|
|
23 |
Fri |
Mar 11 |
|
|
|
|
|
24 |
Mon |
Mar 14 |
|
|
|
|
|
25 |
Wed |
Mar 16 |
|
|
|
|
|
26 |
Fri |
Mar 18 |
|
|
|
|
|
27 |
Mon |
Mar 21 |
|
|
|
|
|
28 |
Wed |
Mar 23 |
|
|
|
|
|
- |
Fri |
Mar 25 |
Midterm Recess |
|
|
|
|
29 |
Mon |
Mar 28 |
|
|
|
|
|
30 |
Wed |
Mar 30 |
|
|
|
|
|
31 |
Fri |
Apr 01 |
|
|
|
|
|
32 |
Mon |
Apr 04 |
|
|
|
|
|
33 |
Wed |
Apr 06 |
|
|
|
|
|
34 |
Fri |
Apr 08 |
|
|
|
|
|
35 |
Mon |
Apr 11 |
|
|
|
|
|
36 |
Wed |
Apr 13 |
|
|
|
|
|
37 |
Fri |
Apr 15 |
|
|
|
|
|
38 |
Mon |
Apr 18 |
|
|
|
|
|
39 |
Wed |
Apr 20 |
|
|
|
|
|
40 |
Fri |
Apr 22 |
|
|
|
|
|
Grading, Honor Code Policy, Processes and Procedures
Questions
Other Resources
Additional References
Accommodations for Students with Special Needs
Students with disabilities are encouraged to contact me during the first two weeks of class regarding any special needs. Students with disabilities should also contact Disabled Student Services in the Ley Student Center and the Rice Disability Support Services.