PURPOSE
This is a first course in parallel architecture, with an emphasis on the description and evaluation of commercially available machines. Some historically important machines will also be considered, primarily for the sake of the lessons that can be learned about why they failed to survive. The intractable problems of scientific computing are the prime motivating forces for the intense focus of manpower and money on the development of parallel computing in the 1990's under the federal High Performance Computing and Communication initiative. Therefore, the course will look at parallel architectures from the point of view of the HPCC scientist, and evaluate their usefulness accordingly.
INTENDED AUDIENCE
This course is designed for students with some prior (serial) architecture course experience. However, students (including those from applications departments) lacking an earlier architecture course, but possessing good computational aptitude and prior programming experience, are welcome to enroll.
TEXTBOOK/READINGS
There is one required text: Advanced Computer Architecture: Parallelism, Scalability, Programmability by K. Hwang (McGraw-Hill, 1993). Planned coverage includes the entire text except for chapters 5, 6, and 8. Several supplements from Netlib and the World Wide Web will be distributed electronically.
TOPICS:
0. Parallelization Metrics 1. Performance Metrics 2. The ``Science'' of Benchmarking 3. Scalability and the ``Laws'' of Amdahl and Gustavson 4. Computational Similarity 5. Models of Computation 6. Parallelization Paradigms 7. Network Characteristics and Topology 8. Communication Calculus and Templates 9. Pipelining and Parallelism 10. Processor Types 11. Memory Hierarchy 12. Cache Coherence Protocols 13. Latency-hiding Mechanisms 14. Routing Algorithms 15. High Performance Fortran (HPF) 16. The Message Passing Interface (MPI)