Course Websites

CS 484 - Parallel Programming

Last offered Fall 2024

Official Description

Techniques for the programming of all classes of parallel computers and devices including shared memory and distributed memory multiprocessors, SIMD processors and co-processors, and special purpose devices. Key concepts in parallel programming such as reactive and transformational programming, speculation, speedup, isoefficiency, and load balancing. Synchronization primitives, libraries and languages for parallel programming such as OpenMP and MPI, performance monitoring, program tuning, analysis and programming of numerical and symbolic parallel algorithms. Course Information: 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 241 or CS 341.

Related Faculty

Course Description

This is an introduction to Parallel Programming for Computer Scientists and Computer Engineers. Parallel programming notations for shared and distributed memory machines, memory models, atomic operations, race conditions, synchronous and asynchronous computations, performance evaluation, parallel algorithms including graph algorithms, sorting, numerical linear algebra, and FFT are all covered in this course.

Credit Hours

3 or 4 hours

Prerequisites

A course in Data Structures (CS 225) and a Computer Architecture II course (such as CS 232).

TitleSectionCRNTypeHoursTimesDaysLocationInstructor
Parallel ProgrammingDSO71093ONL4 -    Lawrence Rauchwerger
Parallel ProgrammingPP380027ONL3 -    Lawrence Rauchwerger
Parallel ProgrammingPPG67876ONL4 -    Lawrence Rauchwerger
Parallel ProgrammingPPU67875ONL3 -    Lawrence Rauchwerger