Academics
  /  
Courses
  /  
Descriptions
COMP_SCI 358: Intro to Parallel Computing


VIEW ALL COURSE TIMES AND SESSIONS

Prerequisites

CS 213 or (CE 205 & CS 211)

Description

CS 358 serves as an introduction to the field of parallel computing. Topics include common parallel architectures (shared memory, distributed memory, CPU vs. GPU, multicore vs. multiprocessor), programming models (shared memory, message-passing, SIMD / SIMT, SPMD / MIMD), and programming languages and frameworks (pthreads, OpenMP, MPI, CUDA, MapReduce, Go, Chapel). Important concepts will also be introduced including race conditions, synchronization, barriers, deadlock, caching, cache coherence, memory consistency, profiling, speedup, and Amdahl’s law. Important parallel algorithms and data structures will be discussed, including the notion of lock-free data structures. Note that this class lightly touches upon GPU programming; students primarily interested in GPUs should take CS 368.

  • This course satisfies the Systems breadth or Technical Elective.
  • Cross-listed with Comp_Eng 358

COURSE COORDINATOR: Prof. Joe Hummel

COURSE INSTRUCTOR: Prof. Joe Hummel