CPT S 411: Introduction to Parallel Computing

Fall 2018

(August 20, 2018 - December 14, 2018)

TuTh 12:00-13:15
(Pullman campus)
EVRT 452 (Everett campus)
TFLO 224 (Tricities 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 1:30-2:30pm PDT

Instructor email contact: Please contact via Blackboard (learn.wsu.edu) email and for discussions use Piazza. If you send an email to my regular WSU account id, there is no guarantee that I will reply or reply promptly, due to the high volume of messages. 


    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. Parallel graph analytics
  12. GPU Programming
  13. 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). You will need a login/password to access the lecture materials. The instructor will provide this in class.

The following books will serve as references (no need to purchase):

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 three web resources each for a different purpose:


Grading policy:

Homework  and Programming Project Policies:

By default, any 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.

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".

For further information on what "individually" and what "collaborative" mean, and what the overall academic integrity policy issues are, please see below.

Academic Integrity Policy:

*Please read very carefully*

"Individual" assignments means that no collaborations are allowed. You are expected to work on the problems all by yourself and any solution that you submit, must be entirely (100%) yours. Consulting with any other person or consulting solutions online on the web, will be considered "cheating" and is strictly prohibited.

For "collaborative" assignments, strict adherence to the following guidelines is required:

What constitutes cheating? Any deviation from the above homework and programming project policy will be considered "cheating" and will be subject to academic dishonesty code. Note that this includes sharing or even showing your solutions with others in the class. Also, looking up solutions on the web should be strictly avoided and if evidence is found, it will be considered cheating.

Academic integrity is the cornerstone of the university. 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.  

A good 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.