This course examines the advances of sequential computers for gaining speed and application of these techniques to high-speed supercomputers of today. Programming methodologies of distributed and shared memory multiprocessors, vector processors and systolic arrays are compared. Performance analysis methods for architectures and programs are described. Research papers of high impact published recently in the literature will be provided as reading assignments.