Summary of Computer Abstractions and Technology

Computer Abstractions and Technology: A Student Guide

Introduction

Computer performance measures how quickly and efficiently a computer system completes tasks. This study guide focuses on practical performance metrics, common pitfalls when interpreting them, and ways to evaluate and improve system performance. You will learn how benchmarks work, why power matters, and how to reason about speedups using formal models.

Definition: Computer performance is the relationship between the resources consumed by a program (time, energy, instructions) and the results produced; commonly measured as execution time, throughput, or power-efficiency.

Performance Metrics and Benchmarks

Performance can be measured in several ways. The most reliable is execution time, but benchmarks provide standardized workloads for comparison.

SPEC CPU Benchmarks

  • SPEC (Standard Performance Evaluation Corporation) creates standardized benchmarks used to compare CPU performance across machines.
  • SPEC CPU2006 is divided into CINT2006 (integer) and CFP2006 (floating-point) suites.
  • Benchmarks report elapsed time to execute programs; when I/O is negligible, results primarily reflect CPU performance.

Definition: A benchmark is a standardized program or workload used to evaluate and compare system performance.

Practical steps when using SPEC:

  • Run the same benchmark suite on different machines.
  • Normalize each program's time relative to a reference machine to form a ratio.
  • Combine ratios using the geometric mean to summarize performance across workloads.

Display formula for an execution ratio (example): $$\text{ratio}_i = \frac{\text{Ref time}_i}{\text{Exec time}i}$$ Geometric mean summary (for $n$ programs): $$\text{SPECratio} = \left(\prod{i=1}^{n} \text{ratio}_i\right)^{1/n}$$

Example: Interpreting SPEC Results

Use a table to summarize a subset of results (columns: program, instruction count, CPI, clock period, execution time, reference time, SPEC ratio):

ProgramIC (×10^9)CPIClock (ns)Exec time (s)Ref time (s)SPEC ratio
perl2.1180.750.406379,77715.3
bzip22.3890.850.408179,65011.8
gcc1.0501.720.47248,05011.1
💡 Věděli jste?Did you know that the geometric mean gives a fair multiplicative average for performance ratios because it is less skewed by outliers than the arithmetic mean?

Power and Energy Metrics

Performance is not only about speed; power consumption is critical, especially for data centers and mobile devices.

Definition: Power is the rate of energy consumption measured in Watts. Energy is power integrated over time (Joules).

SPECpower_ssj2008

  • Measures server power at varying workload levels using ssj_ops/sec as the performance metric and Watts for power.
  • Overall power-efficiency can be computed as total throughput divided by total power:

$$\text{Overall} = \frac{\sum \text{ssj_ops}}{\sum \text{power}}$$

Example summary (selected rows):

Load (%)Performance (ssj_ops/sec)Average Power (Watts)
100%231,867295
50%118,324246
10%23,066180
0%0141

From these numbers, the overall efficiency (sum of ssj_ops divided by sum of power) for the provided dataset is about 493 ssj_ops per Watt.

💡 Věděli jste?Fun fact: Many servers consume a large fraction of their peak power even when idle, which is why power-proportional design is an active research area.

Common Pitfalls and Fallacies

Understanding where naive reasoning fails helps avoid bad design choices.

Amdahl's Law

  • Improving one part of a system produces limited overall speedup if that part is not the dominant contributor to execution time.

Definition: Amdahl's Law quantifies maximum overall speedup from improving a fraction of a system.

If a fraction $f$ of execution time can be improved by a factor $S$, the overall execution time improvement is: $$\text{Speedup} = \frac{1}{(1 - f) + \frac{f}{S}}$$

Example: If m

Zaregistruj se pro celé shrnutí
FlashcardsKnowledge testSummaryPodcastMindmap
Start for free

Already have an account? Sign in

Computer Performance Essentials

Klíčové pojmy: Execution time is the most reliable single performance metric, SPEC benchmarks (CINT2006/CFP2006) measure CPU performance with standardized workloads, Summarize performance ratios using the geometric mean, Compute ratio_i as $\mathrm{ratio}_i = \dfrac{\text{Ref time}_i}{\text{Exec time}_i}$, Use Amdahl's Law: $\mathrm{Speedup} = \dfrac{1}{(1-f)+\dfrac{f}{S}}$ to set realistic expectations, Account for power: overall efficiency = $\dfrac{\sum\text{throughput}}{\sum\text{power}}$, MIPS is misleading across ISAs and workloads; prefer execution time or throughput, Design optimizations to accelerate the common case for largest impact, Servers often draw substantial idle power; aim for power proportionality, When comparing systems, inspect individual benchmark results, not just summary numbers

## Introduction Computer performance measures how quickly and efficiently a computer system completes tasks. This study guide focuses on practical performance metrics, common pitfalls when interpreting them, and ways to evaluate and improve system performance. You will learn how benchmarks work, why power matters, and how to reason about speedups using formal models. > **Definition:** Computer performance is the relationship between the resources consumed by a program (time, energy, instructions) and the results produced; commonly measured as execution time, throughput, or power-efficiency. ## Performance Metrics and Benchmarks Performance can be measured in several ways. The most reliable is **execution time**, but benchmarks provide standardized workloads for comparison. ### SPEC CPU Benchmarks - SPEC (Standard Performance Evaluation Corporation) creates standardized benchmarks used to compare CPU performance across machines. - SPEC CPU2006 is divided into **CINT2006** (integer) and **CFP2006** (floating-point) suites. - Benchmarks report elapsed time to execute programs; when I/O is negligible, results primarily reflect CPU performance. > **Definition:** A benchmark is a standardized program or workload used to evaluate and compare system performance. Practical steps when using SPEC: - Run the same benchmark suite on different machines. - Normalize each program's time relative to a reference machine to form a ratio. - Combine ratios using the geometric mean to summarize performance across workloads. Display formula for an execution ratio (example): $$\text{ratio}_i = \frac{\text{Ref time}_i}{\text{Exec time}_i}$$ Geometric mean summary (for $n$ programs): $$\text{SPECratio} = \left(\prod_{i=1}^{n} \text{ratio}_i\right)^{1/n}$$ ### Example: Interpreting SPEC Results Use a table to summarize a subset of results (columns: program, instruction count, CPI, clock period, execution time, reference time, SPEC ratio): | Program | IC (×10^9) | CPI | Clock (ns) | Exec time (s) | Ref time (s) | SPEC ratio | |---|---:|---:|---:|---:|---:|---:| | perl | 2.118 | 0.75 | 0.40 | 637 | 9,777 | 15.3 | | bzip2 | 2.389 | 0.85 | 0.40 | 817 | 9,650 | 11.8 | | gcc | 1.050 | 1.72 | 0.47 | 24 | 8,050 | 11.1 | Did you know that the geometric mean gives a fair multiplicative average for performance ratios because it is less skewed by outliers than the arithmetic mean? ## Power and Energy Metrics Performance is not only about speed; power consumption is critical, especially for data centers and mobile devices. > **Definition:** Power is the rate of energy consumption measured in Watts. Energy is power integrated over time (Joules). ### SPECpower_ssj2008 - Measures server power at varying workload levels using ssj_ops/sec as the performance metric and Watts for power. - Overall power-efficiency can be computed as total throughput divided by total power: $$\text{Overall} = \frac{\sum \text{ssj\_ops}}{\sum \text{power}}$$ Example summary (selected rows): | Load (%) | Performance (ssj_ops/sec) | Average Power (Watts) | |---:|---:|---:| | 100% | 231,867 | 295 | | 50% | 118,324 | 246 | | 10% | 23,066 | 180 | | 0% | 0 | 141 | From these numbers, the overall efficiency (sum of ssj_ops divided by sum of power) for the provided dataset is about 493 ssj_ops per Watt. Fun fact: Many servers consume a large fraction of their peak power even when idle, which is why power-proportional design is an active research area. ## Common Pitfalls and Fallacies Understanding where naive reasoning fails helps avoid bad design choices. ### Amdahl's Law - Improving one part of a system produces limited overall speedup if that part is not the dominant contributor to execution time. > **Definition:** Amdahl's Law quantifies maximum overall speedup from improving a fraction of a system. If a fraction $f$ of execution time can be improved by a factor $S$, the overall execution time improvement is: $$\text{Speedup} = \frac{1}{(1 - f) + \frac{f}{S}}$$ Example: If m