Performance Matrices
Performance Matrices
Performance metrics
• determine the benefit/lack of benefit of designs
• computer design is too complex to intuit performance &
performance bottlenecks
• have to be careful about what you mean to measure & how
you measure it
Discussion
• good metrics for measuring computer performance
• what they should be used for
• what metrics you shouldn’t use & how metrics are misused
Performance of Computer Systems
Many different factors to take into account when determining
performance:
• Technology
• circuit speed (clock, MHz)
• processor technology (how many transistors on a chip)
• Organization
• type of processor (ILP)
• configuration of the memory hierarchy
• type of I/O devices
• number of processors in the system
• Software
• quality of the compilers
• organization & quality of OS, databases, etc.
“Principles” of Experimentation
Meaningful metrics
execution time & component metrics that explain it
Reproducibility
machine configuration, compiler & optimization level, OS, input
Real programs
no toys, kernels, synthetic programs
SPEC is the norm (integer, floating point, graphics, webserver)
TPC-B, TPC-C & TPC-D for database transactions
Simulation
long executions, warm start to mimic steady-state behavior
usually applications only; some OS simulation
simulator “validation” & internal checks for accuracy
Metrics that Measure Performance
Raw speed: peak performance (never attained)
PerformanceA / PerformanceB
=n
= ExecutionTImeB / ExecutionTimeA
CPUClockCycl × Ci )
es = ∑(CPI i
CPUExecutionTime =
To measure:
• execution time: depends on all 3 factors
• time the program
• number of instructions: determined by the ISA
• programmable hardware counters
• profiling
• count number of times each basic block is executed
• instruction sampling
• CPI: determined by the ISA & implementation
• simulator: interpret (in software) every instruction &
calculate the number of cycles it takes to simulate it
• clock cycle time: determined by the implementation & process
technology
Means
Measuring the performance of a workload
• arithmetic: used for averaging execution times.
• harmonic: used for averaging rates ("the average of",
as opposed to "the average statistic of")
Amdahl’s Law: