CPT S 411: Introduction to Parallel Computing

Fall 2017

(August 21, 2017 - December 15, 2017)

TuTh 14:50-16:05
(Pullman campus)

Course Information        Policies      Lecture Notes        Course Schedule        Homeworks        Programming Projects        Final White Paper    (old announcements archive)






EME 237, 335-6760

Weekly office hours:  Wednesdays 3:30-4:30pm

Instructor email contact: Through OSBLE+ (http://plus.osble.org)


    This course will serve as a basic introduction to the field of parallel computing. Emphasis will be on the fundamental principles for parallel algorithm design and analysis, and parallel programming for distributed and shared memory parallel machines. Topics to be covered (not necessarily in order) include (but not limited to):

  1. Fundamentals in parallel algorithm design and analysis
  2. Parallel computation models
  3. Network intraconnects and embeddings
  4. MPI programming
  5. OpenMP shared memory multicore programming
  6. Parallel reduction operations
  7. Parallel prefix
  8. Sorting
  9. Matrix operations
  10. Parallel scientific computing applications
  11. MapReduce and cloud computing

Reference texts:

    There will *not* be any required text for this edition of the course. We will use the lecture notes available online on this website, along with lecture scribes, and a variety of online tutorials and reading materials identified by the instructor (also made available through the Lecture Notes link on this page). The following books will serve as references:

Course Prerequisites:

 Interested students who do not meet the above criteria are highly encouraged to contact the instructor to discuss the possibility of enrolling into the course.

Course Webpage & OSBLE+:

    The course will use two web resources for two different purposes:


Grading policy:

Homework Policy:

By default, every problem in the homework should be done "individually". If "collaboration" is allowed for a subset of problems in a homework then it will be explicitly stated so in the homework. "Individual" assignments means that no collaborations are allowed. You are expected to work on the problems all by yourself. Consulting solutions online will also be considered "cheating" and is strictly prohibited. For "collaborative" assignments, strict adherence to the following guidelines is required:

Programming Project Policy:

The statement of the programming project will clearly mention if it is intended to be an "individual" or "team" project. Each team can contain no more than 3 students, with the average team size being 2. Teams need to be identified before starting work on a project, and team projects will be evaluated no differently from individual projects - i.e., the grade given to a team will apply to all individual members of that team.
All team members of a team will receive the same grade on each programming project. Therefore, when working in teams, it is expected that all of the team members contribute equally to the project. If there is a disparity in the levels of contribution, the student members are expected to bring that to the attention of the instructor.

Also, all the source code pertaining to each programming project will have to be solely written from scratch by the project team. Reuse of any code that is supplied by the instructor along with the programming assignment is allowed.

However, use of any code snippets from the internet or from other project teams or elsewhere is strictly prohibited, and if evidence is found it will be considered "cheating".

Academic Integrity Policy:
*Please read carefully*

Academic integrity is the cornerstone of the university. You assume full responsibility for the content and integrity of the academic work you submit. You are allowed to collaborate with classmates only if an assignment allows it explicitly. For collaborative assignments, however, the guiding principle of academic integrity shall be that your submitted work, examinations, reports, and projects must be your own work. Any student who violates the University's standard of conduct relating to academic integrity will be referred to the Office of Student Conduct and may fail the assignment or the course. You can learn more about Academic Integrity on your campus at  http://conduct.wsu.edu. Please also read this link carefully: EECS Academic Integrity Policy   Please use these resources to ensure that you donít inadvertently violate WSU's standard of conduct.  

General rule of thumb:  If you are in doubt about what constitutes cheating vs. allowed collaboration, please ask the instructor prior to performing the work.


Graduate students: please also refer to http://gradschool.wsu.edu/FacultyStaff/Committee/

Late submission policy:

Exam policy: Closed-book, closed-notes, comprehensive

PROGRAMMING ASSIGNMENTS  - click on this link


Click here to download the cover sheet for use in all the homeworks and programming projects 






Washington State University is committed to enhancing the safety of the students, faculty, staff, and visitors. It is highly recommended that you review the Campus Safety Plan (http://safetyplan.wsu.edu/) and visit the Office of Emergency Management web site (http://oem.wsu.edu/) for a comprehensive listing of university policies, procedures, statistics, and information related to campus safety, emergency management, and the health and welfare of the campus community




Reasonable accommodations are available for students with a documented disability. If you have a disability and need accommodations to fully participate in this class, please either visit or call the Access Center (Washington Building 217; 509-335-3417) to schedule an appointment with an Access Advisor. All accommodations MUST be approved through the Access Center.