Spring 2012
CS 635 Foundations of Parallel Computation
Sections 001 and NET

  Syllabus Page

  Lecture Timetable

  Lecture Slides

  Homework & Projects

Course Description:

This course is designed to provide an introduction to the field of parallel computation. Topics chosen for discussion will illustrate architectural, algorithmic, and language requirements for parallel computing and the lectures will emphasize the relationships between these requirments. Parallel algorithm design and analysis as well as parallel programming languages will be examined in the context of specific parallel systems and models.


CS 583 (Analysis of Algorithms)
CS 571 (Operating Systems) and/or CS 540 (Language Processors)
Programming ability in C/C++ and familiarity with Unix

Students should not enroll in this class if they do not have the prerequisites. This course covers a large amount of material and utilizes concepts that are studied in the prerequisite courses. There will be no review of the prerequiste material.


Prof. Pearl Y. Wang
Computer Science Department
Office:  Nguyen Engineering - ENGR 4304
Tel:       703-993-1527
E-mail:    pwang at cs.gmu.edu
Office Hours:   Wed 6 pm - 7 pm;   other times available by appointment

Class Hours:

Sec 001: Wed 7:20 pm - 10 pm;   ENGR 4705
Sec NET: Wed 7:20 pm - 10 pm;   NET
This course is delivered to the Internet section online using Moodle learning management system with MIST/C, which has replaced the Network EducationWare (NEW) delivery system. Students in all sections will have accounts on Moodle and can download the slide files from the Moodle course page. However, only students in online sections will be able to connect to class sessions and download recordings of the lectures. Login information will be sent to all enrolled students by email, before the first scheduled class.

Textbooks & Websites:


Ananth Grama, Anshul Gupta, George Karypis and Vipin Kumar, Introduction to Parallel Computing, Second Edition, Addison Wesley, 2003.


Peter S. Pacheco, Parallel Programming in MPI, Morgan Kaufman Publishers, Inc, 1997.
Barbara Chapman, Gabriele Jost and Ruud van der Pas, Using OpenMP, MIT Press, 2007.
David Kirk and Wen-mei Hwu , Programming Massively Parallel Processors, Morgan Kaufman, 2010. http://www.elsevierdirect.com/morgan_kaufmann/kirk/


MPICH: http://www-unix.mcs.anl.gov/mpi/mpich/
LAM:     http://www.lam-mpi.org/
OpenMPI:     http://www.open-mpi.org/
MPI:             http://www-unix.mcs.anl.gov/mpi/

OpenMP:      http://openmp.org/
NVIDIA Developer Website:  http://developer.nvidia.com/page/home.html

Journeyman's Programming Tour A great reference to other refs

Course Requirements & Grading:

The course grade will be based on written homework, programming assignments, and examinations. There will be at least three major programming assignments, a midterm and a comprehensive final examination. All assignments must be completed by the stated due date and time. Late coursework will not be accepted and make-up tests will not be given for missed examinations.

Students in the NET section are expected to take the examinations in-class (i.e. on the GMU campus) on the specified dates.

Homework & Projects:   50%
Midterm Exam:    25 %
Final Exam:         25%
All coursework is to be done independently unless otherwise specified. Students are expected to abide by the GMU and Computer Science Department Academic Integrity Policies at http:/honorcode.gmu.edu/ and http://cs.gmu.edu/wiki/pmwiki.php/HonorCode/HomePage. Violations of these policies will be pursued.
If you have a documented learning disability or other condition that may affect academic performance you should: 1) make sure this documentation is on file with the Office of Disability Services (SUB I, Rm. 4205; 993-2474; http://ods.gmu.edu/) to determine the accommodations you need; and 2) talk with me to discuss your accommodation needs.

Important Dates:

Last day to add:  Tues Jan 31, 2012
Last day to drop: Tues Jan 31, 2012 (no tuition penalty)
Last day to drop: Fri Feb 24, 2012

Spring Break: Mon Mar 12 - Sun Mar 18, 2012
Last day of classes: Sat May 5, 2012

Final Examination: Wed May 9, 2012, 7:30 pm - 10:15 pm

Tentative List of Topics:

Parallel architectures and models of computation
PRAMs, pipelining, data parallel computing
Parallel language constructs
Designing parallel algorithms
Distributed memory message passing
Shared memory programming--pThreads and/or GPU computing

Created: 23 Jan 2012
P.Y. Wang