\section*{Oregon Graduate Institute of Science and Technology}
The Computer Science and Engineering Department incorporates aspects
of parallelism into their Issues in Contemporary Operating System Design,
Contemporary High-Performance Architectures, and Highly
Parallel Architectures courses.   In addition, the following courses
are offered.

\begin{itemize}
\item Compiling for High Performance Computers.

    Vector and parallel processors, superscalar and wide-instruction 
    architectures impose special requirements on compilers in order to 
    utilize these high-performance architectures effectively.  This course 
    explores techniques for automatic program analysis and code generation 
    for such architectures.  Topics include data and control flow 
    computations, detection of parallelism, data dependence analysis, 
    optimal register allocation, instruction scheduling and program 
    restructuring transformations.  

\item Advanced Computer Architecture.

    This course covers cache memories, pipelined arithmetic units, multiple 
    functional units, high performance processors, VLIW and superscalar 
    processors, vector processing, interleaved memories, multiple 
    processors, shared memory processors, message-passing 
    multicomputers, distributed shared memory systems and latency 
    hiding,  massively parallel processors, performance evaluation, and 
compiler optimizations.  Example systems will include the Sequent Symmetry, 
    Intel iPSC, Cray Y-MP, IBM RS/6000 and Connection Machine.  

\item Scientific and Parallel Programming.

    This is a project-based course in parallel programming for scientific 
    applications.  Algorithms are expressed as message-passing programs.
    Experiments are performed on networks of 
    workstations and on a distributed memory parallel computer.  The course 
    includes the following topics: solution of linear algebraic equations, 
    random numbers and Monte Carlo methods, minimization of functions, 
    combinatoric optimization, systems of ordinary differential equations, and 
    systems of partial differential equations.  
\end{itemize}

