Course Description:
This course covers advanced design of parallel algorithms, performance modeling, parallel hardware, language support for parallel programming, and programming models for shared- and distributed-memory systems ranging from handheld multicore devices to large-scale clusters and accelerators. The students will gain applied knowledge and skills by developing parallel software for multiple platforms.Prerequisite:
CS 5351 or equivalent with a grade of B or higher, or consent of the instructor.
Course Objectives:
The students will be able to:
-
describe various parallel architectures
-
name standard synchronization primitives
-
identify common parallelism errors
-
apply various parallel programming approaches
-
analyze the performance of parallel programs
-
design scalable parallel algorithms
-
implement massively-parallel programs
Course Notes:
Course effective Fall 2017. Available only for computer science majors.