...
Instructor: | Prof. Vivek Sarkar, DH 3131 | Graduate TA: | Kumud Bhandari |
---|---|---|---|
| Please send all emails to comp322-staff at rice dot edu | Graduate TA: | |
Assistant: | Sherry Nassar, sherry.nassar@rice.edu, DH 3137 | Graduate TA: | |
Graduate TA: | Rishi Surendran | ||
|
| Undergrad TA: | Annirudh Prasad |
Cross-listing: | ELEC 323 | Undergrad TA: | Yunming Zhang |
|
| HJ consultants: | Vincent Cavé, Shams Imam |
Lectures: | Herzstein Hall 212 | Lecture times: | MWF 1:00 - 1:50pm |
Labs: | Ryon 102 | Lab times: | Tuesday, 4:00 - 5:15pm (Section 3) |
|
|
| Wednesday, 3:30 - 4:50pm (Section 2) |
|
|
| Thursday, 4:00 - 5:15pm (Section 1) |
...
The goal of COMP 322 is to introduce you to the fundamentals of parallel programming and parallel algorithms, using a pedagogic approach that exposes you to the intellectual challenges in parallel software without enmeshing you in the jargon and lower-level details of today's parallel systems. A strong grasp of the course fundamentals will enable you to quickly pick up any specific parallel programming model that you may encounter in the future, and also prepare you for studying advanced topics related to parallelism and concurrency in more advanced courses such as COMP 422.
To ensure that students get a strong grasp of parallel programming foundations, the classes and homeworks will place equal emphasis on advancing both theoretical and practical knowledge. The programming component of the course work will initially use a simple parallel extension to the Java language called Habanero-Java (HJ), developed in the Habanero Multicore Software Research project at Rice University. Later in the course, we will introduce you to some real-world parallel programming models including Java Concurrency, .Net Task Parallel Library, MapReduce, CUDA and MPI. The use of Java will be confined to a subset of the Java language that should also be accessible to C programmers --- advanced Java features (e.g., wildcards in generics) will not be used. An important goal is that, at the end of COMP 322, you should feel comfortable programming in any parallel language for which you are familiar with the underlying sequential language; any parallel programming primitives should be easily recognizable based on the primitives studied in COMP 322.
Course Overview
COMP 322 provides the student with a comprehensive introduction to the building blocks of parallel software, which includes the following concepts:
...