CS 258 System Architecture and Performance
This course has the primary goal to provide the students with knowledge of computing system aspects as they relate to performance, with a secondary goal of developing skills on how to evaluate performance and design hardware/software systems that perform efficiently. The the first part of the course reviews system architecture with focus on aspects that impact performance directly. These aspects include but not limited to: pipelining, cache memory design, virtual memory support, interconnect topologies, cloud computing support, virtualization, modern storage systems, and accelerators. The second part of the course covers low-level software aspects of systems, including runtime systems, programming language issues, power management, and general parallelization techniques . The third part covers performance evaluation techniques including spreadsheet models, experimental evaluation, simulation, and analytic modeling.
Prerequisite
Equivalent of computer architecture and logic design at the undergraduate level. Good programming skills are expected.