Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.


Intro to Parallel Programming

Nvidia and University of California, Davis via Udacity

This course may be unavailable.


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

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

Taught by

John Owens and David Luebke


3.4 rating, based on 7 Class Central reviews

Start your review of Intro to Parallel Programming

  • Otto Smith
    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 installe…
  • Really good course. Unfortunately the IDE is not working anymore and for the last year there is no update of the state of the issue!

    You still can use the course with your own hardware, but you will not pass the corresponding exams.
  • 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.
  • Shaodong Qin
  • Anonymous
    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.
  • Thomas Kamara

Never Stop Learning.

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

Someone learning on their laptop while sitting on the floor.