Parallel and distributed computing systems
have emerged as the most powerful computers
available, taking over the field of supercomputing.
The wide availability of parallel supercomputers
is now spurring important scientific progress,
as scientists and engineers use parallel computers
to explore natural and manmade systems in increasing
detail. This course will provide students with
an introduction to this field of study and with
hands-on experience using state of the art parallel
computing technology. The course will introduce
fundamental methods for scientific computing
in the context of massively parallel computation.
Discussions will be organized around important
algorithmic concepts and specific applications
chosen to illustrate the methods. Various parallel
computational models will be evaluated within
the framework of specific algorithms. Students
will observe, modify and design programs that
run on parallel architectures such as the University's
SGI Origin2000 and SGI POWER CHALLENGEarray
as well as networks of distributed workstations.
They will develop competence in both data parallel
and message-passing style programming. In addition
they will make use of modern computational tools
for scientific visualization, interactive debugging,
and performance analysis.