CS 475 / 575 -- Parallel Programming

Ecampus Edition

Spring Quarter 2018


Handouts Projects Grades VHR Piazza

This page was last updated: April 2, 2018

Things to Know About:

Important Dates

April 2Spring Quarter classes start
Thursday, May 3Test #1 opens at 10:00 AM PDT
Sunday, May 6Test #1 closes at 10:00 AM PDT
May 13Mothers Day
May 28Memorial Day
Thursday, June 14Test #2 opens at 10:00 AM PDT
Sunday, June 17Test #2 closes at 10:00 AM PDT
June 15EECS Graduation Celebration, 3:30
June 16OSU Graduation

Note that Test #1 and Test #2 will require a proctor. Ecampus recommends that you complete your proctor requests during week #2 of the term,

Here are Some Background Resources for You

Over the last couple of months, various faculty have been putting together mini-tutorials on topics that we (apparently) expect you to magically know, without us ever actually showing you. Here they are. We hope they help.

What We Will Be Doing This Quarter

The goals of this course are to leave you "career-ready" (i.e., both work-ready and research-ready) for tasks that require desktop parallelism, both on a CPU and on a GPU.

CS 475/575 topics include:


This course will use C/C++ for its programming. Already being comfortable with function calls, arrays, for loops, structures, arrays of structures, structures of arrays, pointers, trees, and linked lists is important. It is strongly suggested that you not use this class as an opportunity to learn C for the first time.

Many of the assignments can be done on Linux systems. It would be good if you already know how to use the Linux command line and know at least one Linux-based editor (vim is good.

Some knowledge about computer architecture (e.g., cores, cache) would be a plus, but not critical.

Learning Outcomes

On completion of the course, students will have demonstrated the ability to:

  1. Explain the clockspeed limitations of computing using physics and Moore's Law
  2. Explain the limitations of parallel computing using Amdahl's Law
  3. Demonstrate "parallel thinking" in program design
  4. Explain the difference between TLP, DLP, and SIMD
  5. Demonstrate the ability to program parallel algorithms in TLP, DLP, and SIMD.
  6. Characterize what types of problems are best able to be parallelized
  7. Characterize different parallel programming patterns and what types of problems they best address
  8. Chacacterize how cache issues affect parallel performance
  9. Demonstrate the proper use of synchronization to avoid race conditions and deadlock
  10. Characterize the benefits of using a CPU versus using a GPU for parallel programming
  11. Characterize the benefits of using a GPU versus using a CPU for parallel programming

In addition, those taking this course as CS 575 will also have deminstrated the ability to:

  1. Read a parallel-programming-related research paper and write a 5-page analysis paper of it. (I will make some of these available for you, or you can propose your own. It has to be a real research paper, though.)


The class is being taught by Professor Mike Bailey.

Office: Kelley 2117
Phone: 541-737-2542
E-mail: mjb@cs.oregonstate.edu
URL: http://cs.oregonstate.edu/~mjb
WebEx Room for Office Hours: https://oregonstate.webex.com/meet/mjboregonstate.edu

Prof. Bailey Office Hours (tentative):

I will hold live Office Hours via my WebEx room. It's site is: https://oregonstate.webex.com/meet/mjboregonstate.edu , but it's only open when I am there.

My Office Hours times are:
Sundays 5:30 - 7:00 PM PDT
Wednesdays 5:30 - 7:00 PM PDT
Fridays 5:30 - 7:00 PM PDT


The TAs for this course are:

Wenbo Hou

Matthew Meyn

Paris Kalathas

Yifan Shen

The Virtual Hand Raise (VHR)

I recognize that it sometimes takes a certain amount of courage to ask a question in class. But, the worst thing of all is to not ask! So, this class also uses something called the Virtual Hand Raise. Click here to get into it. It will allow you to send me a question or comment, completely anonymously. I will answer questions submitted this way by email to the class or in class.


There is no required textbook for this course. We will use notes that will be made available on the class web site.

There is a free Parallel Programming book available. Click here to get to it. I'm not sure how much it helps for this class, but it is certainly interesting to look through.


CS 475/575 will be graded on a fill-the-bucket basis. There will be 8 projects, 10 quizzes, and two tests. You get to keep all the points you earn.

In addition, the CS 575 people have an extra 100-point project.
The CS 475 people automatically get 100 points for this project, even though they didn't have to do it.

Your final grade will be based on your overall class point total. Based on an available point total of 1100, grade cutoffs will be no higher than:

Grade cutoffs will be no higher than this.

Project Turn-In Procedures

Bonus Days and Late Assignments

Projects are due at 23:59:59 on the listed due date, with the following exception:

Each of you has been granted five Bonus Days, which are no-questions-asked one-day extensions which may be applied to any project, subject to the following rules:

  1. No more than 2 Bonus Days may be applied to any one project
We will grade project assignments when they are two days past due:
  1. If your assigment is late, but you have enough Bonus Days left to expend on it, then we will just grade it as normal, and adjust your expended Bonus Days Late number on your grade sheet.
  2. If you don't have enough Bonus Days Left to expend on it, your grade is a 0.
  3. If your project is 3 or more days late, your grade is a 0, no matter how many Bonus Days you have left.

Downloadable Files

None yet.

Class Rules

Students With Disabilities

Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval please contact DAS immediately at 541-737-4098 or at http://ds.oregonstate.edu.. DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.

Religious Holidays

Oregon State University strives to respect all religious practices. If you have religious holidays that are in conflict with any of the requirements of this class, please see me immediately so that we can make alternative arrangements.

Other Useful Online Parallel Programming Information