Parallel Computing
Lecture
Main Campus
Course Description
This course is an introduction to parallelism and parallel programming. Most new computer architectures are parallel; programming these machines requires knowledge of the basic issues of and techniques for writing parallel software. Topics: varieties of parallelism in current hardware (e.g., fast networks, multicore, accelerators such as GPUs, vector instruction sets), importance of locality, implicit vs. explicit parallelism, shared vs. non-shared memory, synchronization mechanisms (locking, atomicity, transactions, barriers), and parallel programming models (threads, data parallel/streaming, MapReduce, Apache Spark, SPMD, message passing, SIMT, transactions, and nested parallelism). Significant parallel programming assignments will be given as homework. The course is open to students who have completed the introductory CS course sequence through 111.
CS 149
Units: 3–4
See When It's Offered opens a new window opens in a new tab
Typically Offered
Not Available
Grading Basis
Letter or Credit/No Credit
Class Level
Undergraduate
Instructional Mode
In Person
Gen Ed Requirement(s)
None
