The course will teach students the evaluation of the performance of a computer system by making measurements, setting up simulations and/or mathematically modeling a system. To this end, students will learn and put into practice the following techniques:

  • general concepts on performance measurement
  • performance metrics
  • characterization of workloads
  • data visualization and summarization
  • monitors and profiling of software and operating system
  • an introduction to queuing theory
  • ...
The course will deepen the knowledge on the architecture of computer systems developed in the previous courses to understand the observations made with the aforementioned techniques and write more efficient programs:
  • CPU operation
  • caches and virtual memory
  • the parallelism of instructions and data
  • operation of peripherals and drivers
  • file systems and storage devices
  • virtualization
  • ...