Graduate Catalog

COSC 637 Parallel Programming

This course is a hands-on introduction to parallel computing for MSc students with emphasis on the most common and accessible parallel architecture, namely, the Graphics Processing Unit (GPU). The course will introduce students to modern GPU architectures and the fundamental concepts of parallel computing, including data parallelism, scalable execution, memory and data locality, multithreading, and synchronization. The course will also cover some of the most common parallel patterns such as convolution, prefix sum, graph search, and sparse matrix multiplications, along with their GPU implementations. The case study of deep convolutional neural networks will be covered in detail. NVIDIA’s CUDA programming environment will be used throughout the course for homework assignments and the course project.

Credits

3