Parallel computation has a rich and varied history, and the techniques for solving problems on parallel computers are both intriguing and intellectually appealing. CSE 160 will introduce students to Parallel Computation and its application to large scale problems arising in science and engineering. The goal is to provide an overview of important topics and issues for parallel architectures, models, algorithms and software. The course provides a foundation and context from which current research in Parallel Computation can be understood and more advanced topics may be pursued.
Catalog copy: Introduction to HPPC; parallel architecture, algorithms, software and problem-solving techniques. Areas covered: Flynn's taxonomy, processor-memory organizations, shared and non-shared memory models; message passing and multithreading, data parallelism; speed up, efficiency and Amdahl's law, communication and synchronization, isoefficiency and scalability. Topics; run time software techniques, compilers, and grid computing. Assignments given to provide practical experience.
The prerequisite for CSE 160 is CSE 100 or Math 176.
There is one required text:
Parallel Programming: Techniques and Applications Using
Networked Workstations and Parallel Computers, by
B. Wilkinson and M. Allen, Prentice Hall Pub.,
ISBN: 0-13-671710-1.
There is one recommended text:
Parallel Programming with MPI,
P. Pacheco,
Morgan Kaufmann Pub. (1997).
ISBN: 1558603395.