OpenMP Multicore Parallel Programming
Doing multicore programming at all is not difficult.
The tricky part is doing multicore well.
—Professor Mike Bailey, Oregon State University
Oregon State University is proud to offer a short course on the OpenMP multicore programming paradigm — a foundational skill for machine learning, cryptography, game programming, and many other cutting-edge technologies. Parallel programming skills will enable you to write code that runs several times faster by making better use of the hardware in your computer.
This course will include a 3-hour in-person workshop from 1:00-4:00pm, Tuesday October 29, at the OSU Portland Center. Leading into the in-person workshop, the course will include 2-3 hours of preparatory self-paced online video-based training available beginning October 22.
There will be short low-stakes quizzes to be sure that you are keeping up with the material (but no exams). There will be no required programming assignments. The course instructor, Professor Mike Bailey, will provide ample material in the online and in-person instruction for you to try out your new cutting-edge skills!Register
- Multithreading and Multicore
- What is OpenMP All About?
- More Detail on Using OpenMP
- Using OpenMP Threads in for-loops
- Another Approach to Looping -- Single Program Multiple Data
- Running OpenMP Programs
- Running a Specific OpenMP Example Program
- Tips for Avoiding Problems in Multicore Programs
- Reduction Operations Among Threads
- OpenMP Synchronization
- Using OpenMP's "Parallel Sections"
- Using OpenMP's "Tasks"
- Speedups and Amdahl's Law
- Data Decomposition
- Functional Decomposition
- Sometimes You Might Have to Make Your Own Barrier Function
- The Cache
- An Example of Why You Need to Know How Cache Works, even without Multicore
- False Sharing
- Course Summary
- Good Multicore References
This course is targeted at working professionals who need to add multicore programming to their software developer's toolbelt. You don't need a lot of experience to take this course -- just be familiar with C/C++. There will be some mention of assembly language, but not much, so some familiarity with any assembly language will be advantageous.
To get the most out of the course in terms of applying what we'll cover, you should ideally have a laptop with a multicore CPU that you can bring to the Portland Center on October 29. (Most laptops have such a CPU.) Even if you don't know whether your laptop has a multicore CPU, you still will be able to learn and apply the concepts covered in this course, but you won't be able to measure for yourself the tremendous speed-up that a program can gain when you apply the skills taught in this course.
Registration and TimelineRegister
- Early-bird registration: $150 on or before October 14
- Regular registration fee: $200
- Register: Via Oregon State University Marketplace
- Online training: URL for videos emailed out on October 22 (self-paced instruction)
- In-person training occurs: 1-4pm on October 29
- Training location: Portland Center, 555 SW Morrison St
Regarding course content...
Professor Mike Bailey
Associate School Head Chris Scaffidi
Oregon State University
School of Computer Science
1148 Kelley Engineering Center
Corvallis, OR 97331-5501