Catalog Description: Analysis, mapping, and the application of parallel programming software to high-performance systems; the principles of spatial- and temporal-locality of data memory hierarchies in performance tuning; architectural considerations in the design and implementation of a parallel program; the tradeoff between threaded (shared memory) and message-passing (distributed memory) programming styles and performance. Additional projects/assignments required for graduate credit.
Total Credits: 3
Course Coordinator: Robert Hiromoto
Syllabus: CS 411/511 Syllabus
Recommended preparation: Proficiency in programming using a modern language such as C or C++.
Textbook: An Introduction to Parallel Programming, Peter Pacheco, Morgan Kauffmann, ISBN-10: 0123742609
Major Topics Covered
- Spatial and temporal locality
- Parallel programming concepts
- Shared resources
- Shared memory programming using threads
- Message passing using MPI
- Performance issues