Course Description:
This course teaches practical aspects of parallel programming. The covered topics include multi-core processors and shared-memory programming, hardware accelerator programming, and distributed-memory machines and message-passing programming. The students will gain the knowledge and skills needed for developing parallel software by writing programs for a variety of parallel computers.Prerequisite:
- C or higher in CS 3358: Data Structures
-AND-
- C or higher in CS 3339: Computer Architecture
Course Objectives:
1. |
learn how to write correct and efficient parallel programs |
2. |
become skilled at designing and implementing parallel algorithms |
3. |
be familiar with different parallelization paradigms |
4. |
be able to use standard concurrency constructs |
5. |
learn how to reason about concurrency |
6. |
be able to measure and interpret performance metrics |
7. |
perform individual and team projects |
Section Info:
3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.