![]() | ![]() | ![]() |
Projects | Handouts | Office Hours |
This page was last updated: May 1, 2025
A special welcome to all you Ecampusers! It is good to have a cohort here that comes from all over the world. That makes you very special!
You will experience the same course that the on-campus students experience. Same material, same notes, same projects, same quizzes, same tests, and same online Office Hours. There are recorded videos that go along with the notes (they are called "LV" for "Lecture Videos" and you will see them in the same table that has links to the notes).
Like I do whenever I have Ecampus students, I will setup a time every week to do a Live Lecture so that you can hear a discussion of the topics with the chance to ask live questions. For this course, it will be Wednesdays at 3:00 PDT. They are on Zoom at: https://oregonstate.zoom.us/j/8340727662?pwd=b01tZ0hJUzdHNUtrdTRqSkdwbG4zdz09 During the LL, you can also ask questions in the Zoom Chat, and I will answer them during the LL and in a document that I will post in the same place I post the recorded LL videos. On-campus Parallelers are welcome to come as well.
These Live Lectures will be recorded so that if you miss them, you can catch them later.
Thanks, Ecampusers, for being here!
(You might have to change permissions on PrintInfo.exe to make it executable.) Then double-click on PrintInfo.exe -- it will print out the OpenCL characteristics of your system into a file called printinfo.out -- if it does all of that, you have OpenCL.
Then type: chmod 0755 printinfo
Then type: ./printinfo -- it will print out the OpenCL characteristics of your system
into a file called printinfo.out --
if it does all of that, you have OpenCL.
g++ -Xpreprocessor -fopenmp -I/opt/homebrew/Cellar/libomp/14.0.0/include -L/opt/homebrew/Cellar/libomp/14.0.0/lib -lomp *.cpp -o main
clang -Xpreprocessor -fopenmp -I/usr/local/include -L/usr/local/lib -lomp main.c -o mainand
clang++ -Xpreprocessor -fopenmp -I/usr/local/include -L/usr/local/lib -lomp main.cpp -o main
The package you really want is Visual Studio Enterprise 2022.
Graduation! Graduation! Graduation!
BTW, this will all be livestreamed for your far-flung friends and relatives! The link will be posted here.
Job-Hunting Information:
My Resume Advice:
I moved the resume advice to another web page. Click here to see it.
The goals of this course are to leave you "career-ready" (i.e., both work-ready and research-ready) for tasks that require you to speed the execution of programs using parallelism.
CS 475/575 topics include:
This course will use C/C++ for most of its programming.
You should be comfortable with the concepts of function calls, arrays, for-loops, structures,
arrays of structures, structures of arrays, pointers,
stacks, queues,
trees, and linked lists.
It is strongly suggested that you not use CS 475/575
as an opportunity to learn programming for the first time.
Many of the assignments can be done on the OSU Linux systems, which you will have ready-access to.
It would be good if you already know how to use the Linux command line and tools such as:
ls, mv, cp, mkdir, cd, pwd, rm, echo, gcc/g++, and diversion to a file.
It will also help if you know at least one Linux-based editor (vim is good).
This class does a lot of graphing of performance data.
You will need access to a program that will let you enter data into a
2D table and graph it.
(Excel is good, but there are others).
You will need to be able to copy-and-paste those tables and graphs
into a word processing document, add your own text around them, and then produce a PDF file from it.
Prerequisites and Course Incoming Expectations
Professor
The class is being taught by
Professor Mike Bailey.
Office: | Kelley 2117 (2nd floor, south side) |
Email: | mjb@cs.oregonstate.edu |
Phone: | 541-737-2542 |
The TAs for this course are: Pavlo Havrylyuk, Aakash Kulkarni, Manoj Kumar Gummadi, Shubhangi Pandey, Uma Kanth Pendyala, Ryan Roberts, Suriyakrishnan Sathish, Suyash Sreekumar, and Jing Wang.
Manoj Kumar Gummadi | Pavlo Havrylyuk | Aakash Kulkarni | Shubhangi Pandey | Uma Kanth Pendyala | Ryan Roberts | Suriyakrishnan Sathish | Suyash Sreekumar | Jing Wang | Prof. Bailey | |
Email @oregonstate.edu | gummadm | havrylyp | kulkaraa | pandeys | pendyalu | roberyan | sathissu | sreekums | wangji9 | mjb |
Zoom-rooms | Zoom | Zoom | Zoom | Zoom | Zoom | Zoom | Zoom | Zoom | Zoom | Zoom |
Mondays | 1:00-6:00 | 3:00 - 6:00 | 8:00-10:00 , 11:00-1:00 | 8:00-11:00 | 10:00-11:00 | |||||
Tuesdays | 8:00-1:00 | 1:00-5:00 | 8:00-1:00 | 10:00-12:00 | ||||||
Wednesdays | 11:00-1:00 , 4:00-5:00 | 8:00-11:00 | 11:00-1:00 , 2:00-5:00 | 1:00-4:00 | 8:00-11:00 | 3:00-5:00 (LL) | ||||
Thursdays | 12:00-2:00 | 9:00-12:00 | 8:00-11:00 | 11:00-3:00 | 4:00-7:00 | |||||
Fridays | 8:00-11:00 | 8:00-11:00 | 2:00-6:00 | 3:00 - 5:00 | ||||||
Saturdays | 8:00-1:00 |
"LL" is Prof. Bailey's Live Lecture. It usually lasts for about 90 minutes. The rest of that time is Office Hours. Lurking is welcome!
8:00 | 9:00 | 10:00 | 11:00 | 12:00 | 1:00 | 2:00 | 3:00 | 4:00 | 5:00 | 6:00 | |
Mondays | SuSa , SuSr | SuSa , SuSr | PB , SuSr | SuSa | SuSa | AK | AK | AK , RR | AK , RR | AK , RR | |
Tuesdays | PH , SuSa | PH , SuSa | PH , PB , SuSa | PH , PB , SuSa | PH , SuSa | AK | AK | AK | AK | ||
Wednesdays | SP , SuSr | SP , SuSr | SP , SuSr | MKG , UKP | MKG , UKP | RR | RR , UKP | RR , UKP , LL | MKG , UKP , LL | ||
Thursdays | SP | PH , SP | PH , SP | PH , UKP | UKP , MKG | MKG , UKP | UKP | RR | RR | RR | |
Fridays | SP SuSr | SP SuSr | SP SuSr | JW | JW , PB | JW , PB | JW | ||||
Saturdays | JW | JW | JW | JW | JW |
LL = Zoom Live Lecture time
The links on the initials point to the Zoom-Rooms.
MKG = Manoj Kumar Gummadi
PH = Pavlo Havrylyuk
AK = Aakash Kulkarni
SP = Shubhangi Pandey
UKP = Uma Kanth Pendyala
RR = Ryan Roberts
SuSa = Suriyakrishnan Sathish
SuSr = Suyash Sreekumar
JW = Jing Wang
PB = Prof. Bailey
I will be holding Live Lectures every Wednesday from 3:00-5:00 PM PDT.
We will go over some current materials, some upcoming materials, and maybe some extra materials.
If you are an Ecampus student, this will give you the chance to hear the material live and ask questions as we go along.
But if you, as an on-campus student, couldn't attend the on-campus class (or even if you could),
this will be a time for you to hear about the material and to ask live questions too.
The Live Lectures are on Zoom at:
https://oregonstate.zoom.us/j/8340727662?pwd=b01tZ0hJUzdHNUtrdTRqSkdwbG4zdz09
During the LL, you can ask questions just by speaking or raising your Zoom Hand.
You can also type in the Zoom Chat, and I will answer those questions during the LL and
in a document that I will post in the same place as I post the recorded LL videos.
Attendance at the Live Lectures is optional,
but the material we cover there could be on quizzes and tests.
The material will definitely help you on the projects.
These sessions will be recorded (see below) in case you missed them.
Lurking is welcome and encouraged.
Come, turn of your microphone and camera, and listen in.
You could even be working on something else at the same time.
It's much better to be there and catch bits and pieces than to not be there at all!
LLV = Live Lecture Video
Live Lectures
LL # | Chat | Video |
---|---|---|
1 | LLV | |
2 | LLV | |
3 | LLV | |
4 | LLV | |
5 | LLV |
Notes in place of a textbook
Course material will consist of my notes and web pages.
All required course materials for this class will cost you $0.00 (i.e., free).
Our on-campus class time is: Monday and Wednesday, 12:00 - 1:50. All of our classes will be in the Learning Innovation Center (LiNC), room 128.
The lectures for the Ecampus version of the class will be asynchronous, that is, you are free to review the notes and watch the videos whenever it suits you. But, be careful not to fall behind! The programming projects, and their due dates, will assume that you have been keeping up with the material.
Everyone learns in different ways.
As such, feel free to attend/use resources that have been setup for the other class modality.
Ecampus students, if you are in the area, feel free to attend the on-campus class.
On-campus students, feel free to watch the videos and attend the Live Lectures.
Everyone should be studying the notes!
Note Handouts and Recorded Videos
To see an Academic Year calendar,
click here.
LV = Lecture Video
Week | Topic | |||||||
---|---|---|---|---|---|---|---|---|
1 | Class Resources Page | HTML | LV | |||||
1 | Course Introduction | 1pp | 2pp | 4pp | 6pp | LV | ||
1 | Project Notes | 1pp | 2pp | 4pp | 6pp | LV | ||
1 | Scripting | 1pp | 2pp | 4pp | 6pp | LV | ||
1 | Graphing | 1pp | 2pp | 4pp | 6pp | LV | ||
1 | Pivot Tables | 1pp | 2pp | 4pp | 6pp | LV | ||
1 | Windows Powershell Scripting | 1pp | 2pp | 4pp | 6pp | LV | ||
1 | Simple OpenMP | 1pp | 2pp | 4pp | 6pp | LV | ||
1 | Parallel Programming: Background Information | 1pp | 2pp | 4pp | 6pp | LV | ||
2 | OpenMP | 1pp | 2pp | 4pp | 6pp | LV-1 | LV-2 | |
2 | OpenMP 4.0 Quick Reference Card | |||||||
2 | Reduction with OpenMP by showing Trapezoid Integration | 1pp | 2pp | 4pp | 6pp | LV | ||
2 | Speedups and Amdahl's Law | 1pp | 2pp | 4pp | 6pp | LV | ||
2 | Moore's Law and Multicore | 1pp | 2pp | 4pp | 6pp | LV | ||
2 | Functional Decomposition | 1pp | 2pp | 4pp | 6pp | LV | ||
2 | A Tale of Two Assembly Codes | 1pp | 2pp | 4pp | 6pp | LV | ||
3 | Hyperthreading and "Almost Amdahl" | 1pp | 2pp | 4pp | 6pp | LV | ||
3 | Caching Issues in Multicore Performance | 1pp | 2pp | 4pp | 6pp | LV-1 | LV-2 | |
3 | OpenMP Tasks | 1pp | 2pp | 4pp | 6pp | LV | ||
4 | Data Decomposition | 1pp | 2pp | 4pp | 6pp | LV | ||
4 | SIMD Vector Parallel Programming | 1pp | 2pp | 4pp | 6pp | LV | ||
4 | Prefetching | 1pp | 2pp | 4pp | 6pp | LV | ||
5 | GPU 101 | 1pp | 2pp | 4pp | 6pp | LV | ||
5 | Test #1 Review | HTML | ||||||
6 | CUDA | 1pp | 2pp | 4pp | 6pp | LV | ||
6 | CUDA Quick Reference Card | |||||||
6 | DGX System | 1pp | 2pp | 4pp | 6pp | LV | ||
6 | CUDA Array Multiplication | 1pp | 2pp | 4pp | 6pp | LV | ||
6 | CUDA Matrix Multiplication | 1pp | 2pp | 4pp | 6pp | LV | ||
7 | Transition CUDA ↔ OpenCL | 1pp | 2pp | 4pp | 6pp | LV | ||
7 | OpenCL | 1pp | 2pp | 4pp | 6pp | LV-1 | LV-2 | LV-3 |
7 | OpenCL 2.0 Quick Reference Card: | |||||||
7 | OpenCL Events | 1pp | 2pp | 4pp | 6pp | LV | ||
8 | OpenCL Array Multiplication | TXT | ||||||
8 | OpenCL Reduction | 1pp | 2pp | 4pp | 6pp | LV | ||
8 | Looking At OpenCL Assembly language | 1pp | 2pp | 4pp | 6pp | LV | ||
8 | OpenCL / OpenGL Vertex Buffer Interoperability | 1pp | 2pp | 4pp | 6pp | LV-1 | LV-2 | |
9 | Message Passing Interface (MPI) | 1pp | 2pp | 4pp | 6pp | LV-1 | LV-2 | LV-3 |
9 | Compute:Communicate Ratio | 1pp | 2pp | 4pp | 6pp | LV | ||
10 | Combined Parallelism | 1pp | 2pp | 4pp | 6pp | LV | ||
10 | Finding More Information | |||||||
10 | Test #2 Review | HTML |
CUDA ArrayMult Visual Studio Solution Folder | NewCudaArrayMul2019.zip | Un-zip and double-click on the .sln file, then select Build→Clean Solution, then select Build→Build Sample, then select Debug→Start Without Debugging |
CUDA ArrayMult .cu program | arrayMul.cu | |
CUDA Linux Makefile (works on the DGX systems, but not on flip) | Makefile | |
Just the CUDA part of the array multiplication code | JustTheCuda.txt | |
Just the CUDA part of the array multiplication + reduction code | JustTheReduceCuda.txt | |
Sample OpenCL C++ source | first.cpp | |
Sample OpenCL CL source | first.cl.txt | |
OpenCL Code to Select the Best (imho...) OpenCL Platform/Device | selectopencldevice.cpp |
Project # | Points | Title | Due Date | Lecture Video |
---|---|---|---|---|
0 | 30 | Simple OpenMP Experiment | April 7 | LV |
1 | 100 | OpenMP: Monte Carlo Simulation | April 15 | LV |
2 | 100 | Functional Decomposition | April 27 | LV |
3 | 100 | Parallel Programming Challenge | May 7 | LV |
4 | 60 | Vectorized Array Multiplication and Reduction using SSE | May 14 | LV |
5 | 100 | CUDA: Monte Carlo Simulation | May 22 | LV |
6 | 100 | OpenCL | June 1 | LV |
575-only paper | 100 | Paper Analysis Project | June 8 -- No BDs | LV |
7 | 120 | MPI | June 9 -- No BDs | LV |
Note: The flip machines do not have GPU cards in them, so CUDA and OpenCL will not run there. (You can compile there, you just can't run.) If your own system has a GPU, you can try using that. You can also use rabbit or the DGX machine, but please be good about sharing them.
Projects are due at 23:59:59 on the listed due date,
with the following exception:
Each of you has been granted
5
Bonus Days, which are no-questions-asked
one-day extensions which may be applied to any project, subject to the following rules:
Bonus Days are to help enable your success!
If you turn in a project three or more days late, the score is a zero.
If you turn in a project late and don't have enough Bonus Days left to spend on it,
the score is a zero.
You don't need to ask me, or even tell me. that you are using Bonus Days.
Just turn your project in late.
Canvas will check your turn-in date and tell me how to deduct the proper number of Bonus Days.
It is your job to track your Bonus Day usage.
But, if you lose track, feel free to email me and ask me to look it up.
Project Turn-In Procedures
Bonus Days and Late Assignments
They are not there to enable your procrastination.
Save them for when you really need them.
Points | Grade |
1060 | A |
1040 | A- |
1020 | B+ |
1000 | B |
980 | B- |
960 | C+ |
940 | C |
920 | C- |
900 | D+ |
880 | D |
860 | D- |
Notice that this grade scale is not 90%-80%-70%-60%. That is because I do such a soft grade on the projects.
University | |
Intro to Computer Graphics | |
Computer Graphics Shaders | |
CS Skills for Simulation and Game Programming | |
Paraview | |
Scientific Visualization | |
Vulkan |
K-12 Outreach | |
Blender | |
Processing | |
Scratch | |
SketchUp | |
TinkerCad |
All students are subject to the registration and refund deadlines as stated in the Academic Calendar:
https://registrar.oregonstate.edu/osu-academic-calendar
Oregon State University's
Counseling and Psychological Services (CAPS)
provides OSU students with individual, relationship, and group counseling.
I have met some of these people, and they are really good.
If you are in any type of emotional difficulty, don't hesitate to contact them.
If it makes it easier for you, I will walk over with you.
MySSP @ OSU is an app that gives all OSU students, including Ecampus students,
24/7 access by text or phone with a licensed mental health counselor
(MySSP stands for "My Student Support Program").
The app makes it easy to schedule short-term counseling appointments with the same ongoing counselor
and provides educational materials covering mental health topics.
Students can communicate with a counselor in five different languages
(Mandarin, Cantonese, French, Spanish or English);
additional language options are available upon request.
Students can download the Anytime Anywhere: MySSP @ OSU and learn more about
the service at
http://beav.es/anytimeanywhere.
For questions, please contact Bonnie Hemrick
(
bonnie.hemrick@oregonstate.edu
), Director of Mental Health Promotion.
It is important you feel safe and welcome in this course. If
somebody is making discriminatory comments against you,
sexually harassing you, or excluding you in other ways, contact
the professor, your academic advisor, and/or report what
happened at
https://studentlife.oregonstate.edu/studentconduct/
reporting so we can connect you with resources.
You are expected to do your own work.
Helping each other, with explanations or clarifications, is OK.
Sharing code, however, is considered cheating.
Anyone caught cheating will fail this class, and the matter will be turned over to the Dean's Office.
You are expected to read and understand Oregon State University's Statement of Expectations for Student Conduct, found here:
https://beav.es/codeofconduct
.
If there is any parts of this document that you don't understand, ask me!
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 disability.services@oregonstate.edu.
For more information, go to: 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.
OSU has twelve established student rights.
They include due process in all university disciplinary processes, an equal opportunity to learn, and grading in accordance with the course syllabus.
See:
https://asosu.oregonstate.edu/advocacy/rights
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.
As {John Lennon? Allen Saunders?} has said: "Life is what happens to you while you're busy making other plans".
I 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.
But I surely can listen.
You are not alone.
University students encounter setbacks from time to time.
If you encounter difficulties and need assistance, it's important to reach out.
Consider discussing the situation with me or an academic advisor.
Learn about resources that assist with wellness and academic success at
http://oregonstate.edu/ReachOut.
If you are in immediate crisis, please contact the Crisis Text Line by texting
OREGON to 741-741 or call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255)
Success at OSU means knowing and using your resources.
One helpful resource is the community of staff available at the Basic Needs Center (BNC) for support (bnc@oregonstate.edu, 541-737-3747,
https://studentlife.oregonstate.edu/bnc).
Students can drop in during open hours and talk with a BNC student leader for resources, ideas and strategies connected to basic needs challenges.
The BNC is often known for its food pantry but there are other resources connected to groceries and affording food
and staff who can help you work through housing stressors.
Undergraduate students, living in Oregon, are especially encouraged to explore SNAP (up to $236 in grocery money each month for eligible students)
as a resource.
Domestic undergraduate students living in Oregon are more likely than not to be eligible for SNAP. BNC staff are skilled with helping students navigate this process.
Additionally, the BNC Textbook Lending Program offers students the opportunity to check out required textbooks for the academic term.
Furthermore, if you are comfortable doing so, please talk with Professor Bailey. He will do everything he can to help you.
Other Useful Parallel Programming Information
Student Resources:
Academic Calendar
Counseling and Psychological Services
MySSP: Mental Health Support for Students
Establishing a Positive Community
Academic Dishonesty
Students With Disabilities
Student Bill of Rights
Religious Holidays
Life Events
Reach Out for Success
Basic Needs