VOOZH about

URL: https://www.coursera.org/learn/introduction-to-concurrent-programming

⇱ Introduction to Concurrent Programming with GPUs | Coursera


Introduction to Concurrent Programming with GPUs

Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.

Introduction to Concurrent Programming with GPUs

This course is part of GPU Programming Specialization

22,182 already enrolled

Included with

β€’

Learn more

Ask Coursera

Gain insight into a topic and learn the fundamentals.
Beginner level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace
80%
Most learners liked this course

Gain insight into a topic and learn the fundamentals.
Beginner level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace
80%
Most learners liked this course

What you'll learn

  • Students will learn how to develop concurrent software in Python and C/C++ programming languages.

  • Students will gain an introductory level of understanding of GPU hardware and software architectures.

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

4 assignments

Taught in English

Build your subject-matter expertise

This course is part of the GPU Programming Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate

There are 5 modules in this course

This course will help prepare students for developing code that can process large amounts of data in parallel. It will focus on foundational aspects of concurrent programming, such as CPU/GPU architectures, multithreaded programming in C and Python, and an introduction to CUDA software/hardware.

The purpose of this foundational module is to prepare students for success within the GPU Programming Specialization. To this end, the module presents the course's overall goals and technical expectations and guides utilizing the Coursera lab environment. Students will conclude by completing an introductory C++ programming assignment to ensure they are equipped for the curriculum.

What's included

3 videos4 readings1 programming assignment2 discussion prompts1 ungraded lab

3 videosβ€’Total 12 minutes
  • GPU Programming Specialization Overviewβ€’3 minutes
  • Course Expectationsβ€’3 minutes
  • Coursera Lab Assignments Overviewβ€’6 minutes
4 readingsβ€’Total 80 minutes
  • Course Overviewβ€’10 minutes
  • Course Outlineβ€’10 minutes
  • Introductory C++ Programming Resourcesβ€’30 minutes
  • VS Code and GitHub Resourcesβ€’30 minutes
1 programming assignmentβ€’Total 30 minutes
  • Introductory C++ Programming Assignmentβ€’30 minutes
2 discussion promptsβ€’Total 30 minutes
  • GPU Interest Discussionβ€’15 minutes
  • General Programming Experience Discussionβ€’15 minutes
1 ungraded labβ€’Total 30 minutes
  • Introductory C++ Programming Lab Exerciseβ€’30 minutes

In order to create software that process greater amounts of data at faster speeds, software operating systems, programming languages, and frameworks require strategies for accessing and modification of data in a manner that maximizes speed, while minimizing the possibility of data being in incorrect states. In this module, students will be presented canonical concurrency problems such as the Dining Philosophers. Additionally, they will learn how operating systems and programming languages handle these problems, and discuss real world big data concurrency applications.

What's included

6 videos3 readings2 programming assignments1 discussion prompt1 ungraded lab

6 videosβ€’Total 35 minutes
  • Real World Concurrent Programmingβ€’4 minutes
  • Concurrent Programming Pitfallsβ€’7 minutes
  • Concurrent Programming Problems and Algorithms Presentationβ€’7 minutes
  • Optional: Hungry Chickens Problemβ€’4 minutes
  • Concurrent Programming Patternsβ€’6 minutes
  • Serial Versus Parallel Code and Flynn's Taxonomyβ€’7 minutes
3 readingsβ€’Total 40 minutes
  • Optional Concurrent Programming Problems and Algorithms Resourcesβ€’15 minutes
  • Optional Parallel Programming Resourcesβ€’10 minutes
  • Optional Serial Versus Parallel Programming Resourcesβ€’15 minutes
2 programming assignmentsβ€’Total 60 minutes
  • Dining Philosophers Assignmentβ€’30 minutes
  • Sleeping Barber Problem Assignmentβ€’30 minutes
1 discussion promptβ€’Total 15 minutes
  • Flynn's Taxonomy Discussionβ€’15 minutes
1 ungraded labβ€’Total 30 minutes
  • Producer Consumer Laboratory Activityβ€’30 minutes

Modern programming languages allow developers to create software with complex logic for manipulation of data in parallel, taking advantage of the multiple CPU cores in most computers. Students will develop simple software, written in the C++ and Python 3 programming languages, that process data sets concurrently.

What's included

6 videos2 readings2 assignments2 programming assignments1 discussion prompt2 ungraded labs

6 videosβ€’Total 31 minutes
  • Python 3 Parallel Programming Syntax and Patterns Presentationβ€’9 minutes
  • Python 3 Laboratory Project Structureβ€’6 minutes
  • Python 3 Assignment Project Structureβ€’3 minutes
  • C++ Parallel Programming Syntax And Patternsβ€’6 minutes
  • C++ Laboratory Project Structureβ€’6 minutes
  • C++ Assignment Project Structureβ€’2 minutes
2 readingsβ€’Total 60 minutes
  • Optional Python Parallel Programming Resourcesβ€’30 minutes
  • Optional C++ Parallel Programming Resourcesβ€’30 minutes
2 assignmentsβ€’Total 20 minutes
  • Python 3 Parallel Programming Quizβ€’10 minutes
  • C++ Parallel Programming Quizβ€’10 minutes
2 programming assignmentsβ€’Total 120 minutes
  • Python 3 Parallel Programming Assignmentβ€’60 minutes
  • C++ Parallel Programming Assignmentβ€’60 minutes
1 discussion promptβ€’Total 10 minutes
  • Single Versus Multithreaded Programming Discussionβ€’10 minutes
2 ungraded labsβ€’Total 120 minutes
  • Python 3 Parallel Programming Lab Activityβ€’60 minutes
  • C++ Parallel Programming Lab Activityβ€’60 minutes

In order to write effective GPU-accelerated software, a developer must first understand the underlying hardware architecture and the software ecosystem that enables it. In this module, students will be presented with the key hardware architectures of NVidia GPUs. Additionally, they will learn about the CUDA software layers, the installation and compilation process, and the core differences between the Runtime and Driver APIs.

What's included

9 videos1 reading1 assignment2 programming assignments1 discussion prompt1 ungraded lab

9 videosβ€’Total 36 minutes
  • Integrated versus Dedicated GPUsβ€’5 minutes
  • GUI CLI Tools for Identifying Installed GPU Hardwareβ€’3 minutes
  • Nvidia GPU Architecturesβ€’4 minutes
  • CUDA Linux Installationβ€’4 minutes
  • CUDA Help Lab and Assignment Walkthroughβ€’3 minutes
  • CUDA Software Layersβ€’4 minutes
  • CUDA Code Compilationβ€’3 minutes
  • CUDA Runtime Driver APIsβ€’3 minutes
  • CUDA Driver and Runtime APIs Lab and Assignment Walkthroughβ€’8 minutes
1 readingβ€’Total 10 minutes
  • Nvidia GTC Keynote Presentationβ€’10 minutes
1 assignmentβ€’Total 30 minutes
  • Nvidia Software and Hardware Quizβ€’30 minutes
2 programming assignmentsβ€’Total 75 minutes
  • NVCC Help Command Assignmentβ€’15 minutes
  • CUDA Software Layers and Compilationβ€’60 minutes
1 discussion promptβ€’Total 10 minutes
  • GUI/UI Tools for Identifying Installed GPU Hardware Discussionβ€’10 minutes
1 ungraded labβ€’Total 30 minutes
  • CUDA Compilation Labβ€’30 minutes

The purpose of this module is to transition from theory to practice by introducing the fundamentals of GPU programming. Students will learn the essential CUDA software keywords and syntax required for writing device code. They will also be guided through best practices for structuring both simple and complex projects, applying these concepts in hands-on assignments within common development environments.

What's included

6 videos1 reading1 assignment2 programming assignments1 discussion prompt1 ungraded lab

6 videosβ€’Total 28 minutes
  • CUDA Compilation and Execution Syntaxβ€’7 minutes
  • CUDA Keywords Videoβ€’3 minutes
  • Simple CUDA Lab and Assignment Walkthroughβ€’4 minutes
  • CUDA IDE Programmingβ€’4 minutes
  • CUDA Project Structure and Best Practicesβ€’7 minutes
  • Complex CUDA Project Assignment Walkthroughβ€’2 minutes
1 readingβ€’Total 30 minutes
  • Optional NVidia CUDA Programming Resourcesβ€’30 minutes
1 assignmentβ€’Total 10 minutes
  • GPU Programming Quizβ€’10 minutes
2 programming assignmentsβ€’Total 120 minutes
  • Simple CUDA Project Assignmentβ€’60 minutes
  • Complex CUDA Project Assignmentβ€’60 minutes
1 discussion promptβ€’Total 10 minutes
  • End of Course Discussionβ€’10 minutes
1 ungraded labβ€’Total 60 minutes
  • Simple CUDA code Labβ€’60 minutes

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.

Instructor

Instructor ratings
2.7 (49 ratings)
Johns Hopkins University
4 Coursesβ€’27,963 learners

Explore more from Software Development

Why people choose Coursera for their career

πŸ‘ Image

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
πŸ‘ Image

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
πŸ‘ Image

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
πŸ‘ Image

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Frequently asked questions

Yes, but you will need to update code files to the labs and assignments. For modules 4 and 5 you will need to have an Nvidia GPU installed on your machine. The in-browser environment for labs and assignments is built to allow for all required programming.

To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Financial aid available,