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 Sessions

You will find the links to the Zoom sessions on Canvas. As a reminder here are the dates and times for the zoom session for this module:

  • Dates/Times
    • Section 1: Thursday December 2nd @ 4:00pm-5:20pm

  • Discussion Outline
    • Parallel Programming in Python and C

    • Briefly review GPUGPU code from lectures (if time permits)

Assignment

Assignments are always due on Thursday evenings.

  • Homework #5, due Thursday December 2nd at 11:59pm CDT