CS 475 / 575 -- Parallel Programming

Ecampus Edition

Spring Quarter 2020


Handouts Projects Grades Piazza

This page was last updated: March 22, 2020

Under Construction:
This content is not final until you see this message go away!

Things to Know About:

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. Demonstrate the ability to program parallel algorithms in multicore, SIMD, and GPU.
  5. Characterize what types of problems are best able to be parallelized
  6. Characterize how cache issues affect parallel performance
  7. Demonstrate the proper use of synchronization to avoid race conditions and deadlock
  8. Characterize the benefits of using a CPU versus using a GPU for parallel programming
  9. 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 demonstrated 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

Prof. Bailey Office Hours (tentative):

I will hold live Office Hours via my Zoom room. It's site is: https://oregonstate.zoom.us/j/8340727662 , but it's only open when I am there.

My Zoom Office Hours are:
Sundays 6:00 - 7:00 PM PDT
Wednesdays 6:00 - 7:00 PM PDT
Fridays 6:00 - 7:00 PM PDT




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


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 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
  2. Bonus Days cannot be applied to tests
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 spend on it, then we will just grade it as normal, and adjust your expended Bonus Days Left (BDL) number on your grade sheet.
  2. If you don't have enough Bonus Days Left to spend 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

Link to the Code of Student Conduct


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.

Life Events

As {John Lennon? Allen Saunders?} has said: "Life is what happens to you while you're busy making other plans". We care about you as a person. When life happens to you, send me an email and come see me. I might be able to help, I might not. But I surely can listen. You are not alone.

Other Useful Online Parallel Programming Information