Introduction to Concurrent Programming with GPUs

بواسطة: Coursera

Overview

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.

Syllabus

  • Course Overview
    • The purpose of this module is for students to understand how the course will be run, topics, how they will be assessed, and expectations.
  • Core Principles of Parallel Programming on CPUs and GPUs
    • 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.
  • Introduction to Parallel Programming with C and Python
    • 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.
  • NVidia GPU Hardware/Software
    • The purpose of this module is for students to understand the basis in hardware and software that CUDA uses. This is required to appropriately develop software to optimally take advantage of GPU resources.
  • Introduction to GPU Programming
    • The purpose of this module is for students to understand the principles of developing CUDA-based software.

Taught by

Chancellor Thomas Pascale

Introduction to Concurrent Programming with GPUs
الذهاب الي الدورة

Introduction to Concurrent Programming with GPUs

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • beginner
  • English, Arabic, French, Portuguese, German, Thai, Indonesian, Spanish, Kazakh, Hindi, Russian, Swedish, Korean, Greek, Italian, Chinese, Ukrainian, Japanese, Polish, Dutch, Turkish
8.1.2PHP Version303msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (193ms)
    • Application (109ms)
    • 1 x Booting (63.72%)
      193.30ms
      1 x Application (36.03%)
      109.31ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed4.4ms
      • select * from `courses` where `slug_ar` = 'introduction-to-concurrent-programming-with-gpus' limit 1
        2.79ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. introduction-to-concurrent-programming-with-gpus
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-13 01:25:50' where `id` = 105
        550μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-13 01:25:50
        • 1. 105
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (1)
        260μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (18) and `institutions`.`deleted_at` is null
        240μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 105 limit 1
        180μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 105
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        t17mkeTu8JIgCFxV236asvF67ub3kLE0qQVjOiRo
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introd...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introduction-to-concurrent-programming-with-gpus
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "priority" => array:1 [ 0 => "u=0, i" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.133.113.237" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.133.113.237" ] "cf-ray" => array:1 [ 0 => "92f72bfd4c3561c3-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_PRIORITY" => "u=0, i" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.133.113.237" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.133.113.237" "HTTP_CF_RAY" => "92f72bfd4c3561c3-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "58630" "REMOTE_ADDR" => "172.69.6.117" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introduction-to-concurrent-programming-with-gpus" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744507550.5533 "REQUEST_TIME" => 1744507550 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sun, 13 Apr 2025 01:25:50 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Im4xYzJBTXRPdndpdCszQW00L0dpM2c9PSIsInZhbHVlIjoiNm9RNjFyaVNFL0FrbnZLVlJGM1p3QjZSWFRWVkhNTUlzc0dZWVI3alZwNXZlRUcydXJSQWZYaHozNHRkd25tdjBYVWdibHVPVkJtYTl1dUlpUGl2STBvNzJjYVQ3SGNEMzhwZDJPMm81amhOb3pIRE9wSU1jYktJRXVxL1RQU3UiLCJtYWMiOiJhZGI0YjRkNGYxODNkYjM3OTg4NDRmZTI2MWRkOTJhNjdlMzM0NzhiNmQ3MTg0YTdjZDU1NjJiZjY3YTJjOGVhIiwidGFnIjoiIn0%3D; expires=Sun, 13 Apr 2025 03:25:50 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Im4xYzJBTXRPdndpdCszQW00L0dpM2c9PSIsInZhbHVlIjoiNm9RNjFyaVNFL0FrbnZLVlJGM1p3QjZSWFRWVkhNTUlzc0dZWVI3alZwNXZlRUcydXJSQWZYaHozNHRkd25tdjBYVWdib" 1 => "laravel_session=eyJpdiI6ImI2WnhHVTZWeEw0M04zMnlLOVNNaWc9PSIsInZhbHVlIjoiWjJvYXZ6T0ZOekJuUFFzdHJoMVZyR2pCOHpVRWFVVHkvaUpabStTWjhrRlFweW9SaGpTU3pXeFNockwvTFVFV0J0WS9DTjB1VG55ekFwOHNlbzNEcjluNnE1SWxQZSthRnFEdUpCaG9jd1JmMlVFTTlJZGQ2WGhpeFVFNUdMMzkiLCJtYWMiOiJiMjZiOTA0YmYyOGQyNmQ1ZjMwZGFjN2E4ODJiMmZmM2FhNDNmZWEwMzJmMDE4MGJkN2EyYmYyOTIxMzUyZWE2IiwidGFnIjoiIn0%3D; expires=Sun, 13 Apr 2025 03:25:50 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6ImI2WnhHVTZWeEw0M04zMnlLOVNNaWc9PSIsInZhbHVlIjoiWjJvYXZ6T0ZOekJuUFFzdHJoMVZyR2pCOHpVRWFVVHkvaUpabStTWjhrRlFweW9SaGpTU3pXeFNockwvTFVFV0J0" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Im4xYzJBTXRPdndpdCszQW00L0dpM2c9PSIsInZhbHVlIjoiNm9RNjFyaVNFL0FrbnZLVlJGM1p3QjZSWFRWVkhNTUlzc0dZWVI3alZwNXZlRUcydXJSQWZYaHozNHRkd25tdjBYVWdibHVPVkJtYTl1dUlpUGl2STBvNzJjYVQ3SGNEMzhwZDJPMm81amhOb3pIRE9wSU1jYktJRXVxL1RQU3UiLCJtYWMiOiJhZGI0YjRkNGYxODNkYjM3OTg4NDRmZTI2MWRkOTJhNjdlMzM0NzhiNmQ3MTg0YTdjZDU1NjJiZjY3YTJjOGVhIiwidGFnIjoiIn0%3D; expires=Sun, 13-Apr-2025 03:25:50 GMT; path=/XSRF-TOKEN=eyJpdiI6Im4xYzJBTXRPdndpdCszQW00L0dpM2c9PSIsInZhbHVlIjoiNm9RNjFyaVNFL0FrbnZLVlJGM1p3QjZSWFRWVkhNTUlzc0dZWVI3alZwNXZlRUcydXJSQWZYaHozNHRkd25tdjBYVWdib" 1 => "laravel_session=eyJpdiI6ImI2WnhHVTZWeEw0M04zMnlLOVNNaWc9PSIsInZhbHVlIjoiWjJvYXZ6T0ZOekJuUFFzdHJoMVZyR2pCOHpVRWFVVHkvaUpabStTWjhrRlFweW9SaGpTU3pXeFNockwvTFVFV0J0WS9DTjB1VG55ekFwOHNlbzNEcjluNnE1SWxQZSthRnFEdUpCaG9jd1JmMlVFTTlJZGQ2WGhpeFVFNUdMMzkiLCJtYWMiOiJiMjZiOTA0YmYyOGQyNmQ1ZjMwZGFjN2E4ODJiMmZmM2FhNDNmZWEwMzJmMDE4MGJkN2EyYmYyOTIxMzUyZWE2IiwidGFnIjoiIn0%3D; expires=Sun, 13-Apr-2025 03:25:50 GMT; path=/; httponlylaravel_session=eyJpdiI6ImI2WnhHVTZWeEw0M04zMnlLOVNNaWc9PSIsInZhbHVlIjoiWjJvYXZ6T0ZOekJuUFFzdHJoMVZyR2pCOHpVRWFVVHkvaUpabStTWjhrRlFweW9SaGpTU3pXeFNockwvTFVFV0J0" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "t17mkeTu8JIgCFxV236asvF67ub3kLE0qQVjOiRo" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/introduction-to-concurrent-programming-with-gpus" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]