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 problems--ordinary and extraordinary--arising
in "everyday" computing, as well as in computational science and engineering.
The goal of the course is to learn how to devise and implement
parallel algorithms, to understand performance tradeoffs,
and to learn how to generalize these skills to new problems.
The course will
provide an overview of important topics and issues for parallel
architectures, models, algorithms and software.
A study of modest scale parallelism on shared memory multiprocessors
will prepare students for devising and implementing parallel algorithms
to utilize multi-core processors, which are becoming prevalent today,
and will grow to increased scales of integration.
The course provides a foundation and context
from which current research in Parallel Computation can be understood
and more advanced topics may be pursued.
Text:
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.
The Art of Parallel Programming, 2nd Edition,
by Bruce P. Lester
1st World Publishing, 2006, ISBN 1595408398. Be sure to get the 2nd
Edition.
Maintained by
Scott B. Baden (
)
. Last modified:
Sunday, September 24, 2006 8:42 AM