Computer Science 110 or 223, and Computer Science 300 or 225, or advanced programming experience. Almassi-Gottlieb, Highly Parallel Computing, 2nd edition, Benjamin Cummings, 1994. Kumar, Grama, Gupta, and Karypis, Introduction to Parallel Computing, Benjamin Cummings, 1994. Ian Foster, Design and Building of Parallel Programs, Addison Wesley. Implementation of parallel algorithms on one or more classes of parallel computers.
Emphasis is on numerical algorithms.
Ideal and real machine models. Programming models and their languages. Cost models and efficiency analysis of parallel programs. Parallel programming issues. 12 Locality, grain size, scheduling, load balancing, data distribution and alignment, communication analysis, synchronous programming, determinacy and nondeterminacy.