Multicore and GPGPU Programming

Coursera MOOC / Non-credit USD 49
Enroll now →
Multicore and GPGPU Programming

About this course

The course "Multicore and GPGPU Programming" provides a foundational understanding of parallel programming, focusing on developing high-performance, multi-threaded applications in both CPU and GPU environments. Beginning with a review of multicore processor architectures, caching mechanisms, and Non-Uniform Memory Access (NUMA) systems, students will learn the essentials of shared memory programming, synchronisation techniques, and the use of locks to ensure data integrity across threads. The course delves into designing shared memory data structures and introduces advanced synchronisation concepts, including lazy synchronisation, crucial for scalable and efficient concurrent applications. Additionally, students will explore the architecture and programming model of General-Purpose Graphics Processing Units (GPGPUs) and learn CUDA programming to leverage GPU parallelism for compute-intensive tasks. By the end of the course, students will be adept in optimising multi-threaded and many-core applications, balancing workload across CPUs and GPUs to achieve high throughput and efficient resource utilisation. This course is essential for those aiming to develop expertise in high-performance computing and parallel programming for modern multi-core and GPU-based systems.

What you'll learn

  • understand multicore processor architectures
  • apply shared memory programming techniques
  • implement synchronization mechanisms
  • design shared memory data structures
  • utilize CUDA programming for GPGPU tasks

Course objectives

  • equip students with skills for high-performance computing
  • improve understanding of parallel programming concepts
  • enable optimization of multi-threaded applications

Skills you'll gain

Related courses

Course details are provided by the platform and may change — always confirm on the provider's site. Links may be affiliate links.