Udacity: Intro to Parallel Programming

 with  John Owens and David Luebke
Learn the fundamentals of parallel computing with the GPU and the CUDA programming environment! In this class, you'll learn about parallel programming by coding a series of image processing algorithms, such as you might find in Photoshop or Instagram. You'll be able to program and run your assignments on high-end GPUs, even if you don't own one yourself.

**Why It’s Important to Think Parallel**

[Third Pillar of Science][1]
Learn how scientific discovery can be accelerated by combining theory and experimentation with computing to fight cancer, prevent heart attacks, and spur new advances in robotic surgery.


Why Take This Course?
You'll master the fundamentals of massively parallel computing by using CUDA C/C++ to program modern GPUs. You'll learn the GPU programming model and architecture, key algorithms and parallel programming patterns, and optimization techniques. Your assignments will illustrate these concepts through image processing applications, but this is a parallel computing course and what you learn will translate to any application domain. Most of all we hope you'll learn how to think in parallel.


### Lesson 1: GPU Programming Model

Project 1: Greyscale Conversion (for that classy touch!)

### Lesson 2: GPU Hardware and Parallel Communication

Project 2: Smart Blurring (miracle product for removing wrinkles!)

### Lesson 3: Fundamental Parallel Algorithms

Project 3: HDR Tonemapping (when 1000:1 contrast is not enough!)

### Lesson 4: Using Sort and Scan

Project 4: Red Eye Removal (soothing relief for bright red eyes)

### Lesson 5: Optimizing GPU Programs

Project 5: Accelerating Histograms (when fast isn't fast enough)

### Lesson 6: Parallel Computing Patterns

Project 6: Seamless Image Compositing (polar bear in the swimming pool)

### Lesson 7: The Frontiers and Future of GPU Computing
6 Student
Cost Free Online Course
Pace Self Paced
Subject Programming
Provider Udacity
Language English
Hours 6 hours a week
Calendar 12 weeks long

Disclosure: To support our site, Class Central may be compensated by some course providers.

+ Add to My Courses
FAQ View All
What are MOOCs?
MOOCs stand for Massive Open Online Courses. These are free online courses from universities around the world (eg. Stanford Harvard MIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you.  They also have student discussion forums, homework/assignments, and online quizzes or exams.

Reviews for Udacity's Intro to Parallel Programming
3.7 Based on 6 reviews

  • 5 stars 33%
  • 4 stars 33%
  • 3 star 17%
  • 2 star 0%
  • 1 star 17%

Did you take this course? Share your experience with other students.

Write a review
  • 1
4.0 3 years ago
by Otto Smith completed this course.
This is a great course for getting an overview of parallel computer algorithms. It is also a good course for learning cuda. It really requires a NVIDIA processor on your own machine. Debugging on the remote servers is quite difficult. I installed cuda on my laptop which has a NVIDIA graphics processor. This is a hard course. I asked about a certificate which is not available. The person I talked to said less than 10% of the folks who start the course finish it. If you work hard, you will learn a lot. There are not enough folks taking at any one time in order to get help or cooperate much so the student is pretty much on their own. It would work better if it were not a self paced course. It would have been nice if it covered more of open cl as well as cuda, possibly early on showing the same algorithms in both languages, but then it is sponsored by NVIDIA and so reflects their take on parallelism.
7 people found
this review helpful
Was this review helpful to you? Yes
5.0 2 years ago
by Soares Chen audited this course, spending 8 hours a week on it and found the course difficulty to be medium.
Good introduction to CUDA programming. It assume prior knowledge in C/C++ programming. The course introduce most of the basic CUDA concepts such as memory coalescing and streaming multiprocessor.
2 people found
this review helpful
Was this review helpful to you? Yes
4.0 2 years ago
Shaodong Qin completed this course.
0 person found
this review helpful
Was this review helpful to you? Yes
5.0 2 years ago
by Colin Khein completed this course.
0 person found
this review helpful
Was this review helpful to you? Yes
3.0 4 years ago
Anonymous completed this course.
A very basic class on parallel programming. Very low emphasis on hardware/device architecture, most of it being pushed to the second half of the class.
1 person found
this review helpful
Was this review helpful to you? Yes
1.0 2 years ago
by Thomas Kamara audited this course.
Was this review helpful to you? Yes
  • 1

Class Central

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free