This course aims to give students a knowledge of both hardware and software necessary for parallel computation. Topics include an introduction to basic concepts, parallel architectures, and network topologies, parallel algorithms, parallel metrics, parallel languages, granularity, applications, parallel programming design, and debugging. Students will become familiar with various types of parallel architectures and programming environments.
Students will be required to pass both the coursework and the final examination to pass the course.