Course Websites

CS 484 - Parallel Programming

Last offered Spring 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


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

Parallel ProgrammingDSO69486ONL4 -    Lawrence Rauchwerger
Parallel ProgrammingPP360443ONL3 -    Lawrence Rauchwerger
Parallel ProgrammingPP460858ONL4 -    Lawrence Rauchwerger
Parallel ProgrammingPPG60444ONL3 -    Lawrence Rauchwerger