Credit points: 3.
Grading Policy: Homework 30%, Competitive Project 70%.
Shared-Memory Parallelism: CPUs, GPUs and in-between
Shared-Memory Parallelism: CPUs, GPUs and in-between
Lecturer: Dr. Gal Oren
Assistant: Yehonatan Fridman
This course is primarily designed for under and graduate students to learn the basics and the advances of shared memory programming with OpenMP.
This course will introduce you to the multiple forms of parallelism found in modern multi and many core architecture processors and teach you the programming frameworks for handling this parallelism in applications. You will get access to a cluster of modern multi (CPUs) and many (GPUs) core processors (Intel Xeon + Nvidia GPUs architecture) for experiments with graded programming exercises. This course can apply to various HPC and datacenter workloads and framework including artificial intelligence (AI). You will learn how to handle data parallelism with vector instructions, task parallelism in shared memory with threads, vector programming and SIMD extensions, and offloading to accelerators. This knowledge will help you to accelerate computational applications by orders of magnitude, all the while keeping your code portable and future-proof.