\section*{Harvard University}
A course entitled ``Scientific Computation on Large Scale Parallel
Computers'' is taught regularly.  
This course provides an introduction to architecture and algorithms
for parallel computers.  
The course gives an overview of vector and parallel architectures.
Basic algorithms for matrix operations, the solution of linear systems
of equations, sorting, the Fast Fourier Transform, the computation of 
eigenvalues and eigenvectors, and solution of partial differential 
equations are taught.  The emphasis is on distributed memory 
architectures.

Reducing the need for data motion through proper data allocation and 
management of the data motion is critical for performance.  The
techniques for managing distributed memory hierarchies are new.  
Techniques for efficient data motion will be taught, both for common
communication patterns, such as data replication/reduction and matrix
transposition, and for general routing.

