M9: Introduction to GPGPU Programming & Parallel Programming in C & Python

In this final module, you we will explore a fully SIMD based parallel system known as a graphics processing unit. Specifically we explore how to program on these devices using the CUDA library. We will also explore parallel programming in two other languages: C and Python.

Pre-recorded Lectures

The pre-recorded lectures are available here: M9 Videos. You can also find the videos under the “Panopto” tab on the MPCS 52060 canvas site.

The lectures are a series of approx 5-20 minute videos divided into 5 sections:

  • 9.0 - GPU Programming Overview

  • 9.1 - Heterogeneous Computing & Vector Addition

  • 9.2 - Single Integer Add

  • 9.3 - SSH into Virtual Desk

  • 9.4 - Running Cuda Program

  • 9.5 - Cuda Blocks

  • 9.6 - Threads and Blocks

The slides/code presented in these videos are accessible in the upstream repository under the m9/resources directory. Please reachout to me if you do not have access to this repository.

Resources/Readings

Synchronous Session (In-person)

As a reminder here are the dates and times for the synchronous session for this module:

  • Dates/Times

  • Dates/Times
    • Section 1: Wednesday May 25th @ 5:30pm-7:00pm

  • Discussion Outline
    • Parallel Programming in Python and C

    • Course Recap

Assignment

Assignments are always due on Thursday evenings.