The purpose of the course is to give an in-depth exposition of the core concepts of high performance computer architecture. The primary theme of the course is a quantitative approach to computer design and analysis that uses empirical observations of programs, experiments, and simulation as its tools. We will cover major component subsystems of high performance computers, including pipelining, instruction level parallelism, and memory hierarchies, and parallel processors.