Performance Computer Architecture CS 401 Erkay Savas Sabanci
Performance Computer Architecture – CS 401 Erkay Savas Sabanci University 3/5/2021 Erkay Savas 1
Performance • • • What is performance? How to measure performance? Performance metrics Performance evaluation Why some hardware perform better than others for different programs? • What factors in hardware related to performance? • How does the machine's instruction set affect performance? 3/5/2021 Erkay Savas 2
Airplane Analogy • Which of these airplanes has the best performance? Airplane Boeing 777 Passenger throughput Passenger Range Speed Capacity (miles) (m. p. h) (passenger x m. p. h) 228750 375 4630 610 Boeing 747 470 4150 610 268700 Airbus A 3 xx 656 8400 600 393600 Concorde 132 4000 1350 178200 Douglas DC-8 -50 146 8720 544 79424 3/5/2021 Erkay Savas 3
Computer Performance • Response time (latency) – How long does it take for my job to run? – How long does it take to execute a program? – How long must I wait for a database query? • Throughput – How many jobs can the machine run at once? – What is the average execution rate? – How much work is getting done? • If we upgrade a machine with a new processor what do we increase? • If we add a new machine what do we increase? 3/5/2021 Erkay Savas 4
Which Time to Measure? • Elapsed Time (Wall clock time, response time) – Counts everything (disk and memory access, I/O, operating system overhead, work on other processes) – Useful but not always good for comparison purposes • CPU (execution) time – The time CPU spends computing for the user task – Not include time spent waiting for I/O, running other programs – user CPU time spent within the program, – system CPU time spent in the operating system performing tasks on behalf of the program 3/5/2021 Erkay Savas 5
CPU Time • Unix time command reflects this breakdown by returning the following when prompted: 90. 7 u 12. 9 s 2: 39 65% Interpretation: • User CPU time is 90. 7 s • System CPU time is 12. 9 s • Elapsed time is 159 s ( 90. 7+12. 9) • CPU time is 65% of total elapsed time 3/5/2021 Erkay Savas 6
A Definition of Performance • For some program running on machine X Performance. X = 1/Execution_time. X • The machine X is said to be “n times faster” than the machine Y if Performance. X/Performance. Y = n Execution_time. Y/Execution_time. X = n • Example: Machine A runs a program in 10 seconds and machine B runs the same program in 15 seconds, how much faster is A than B? 3/5/2021 Erkay Savas 7
Metrics of Performance • “Time to execute a program” is the ultimate metric in determining the performance • However, it is convenient to inspect other metrics as well when we examine the details of a machine. • Computers use a clock that runs at a constant rate and determines when an event takes place in hardware. • These discrete time intervals are called clock cycles (or ticks, clock periods). • Clock rate (frequency) is the inverse of clock period. 3/5/2021 Erkay Savas 8
Clock Cycles • Clock “ticks” indicate when to start activities time Start of events often the rising edge of the clock • Instead of reporting execution time in seconds, we often use cycles 3/5/2021 Erkay Savas 9
Clock Cycle • cycle time (CT) = time between ticks = seconds per cycle • Cycle Count (CC): the number of clock cycles to execute a program • clock rate (frequency) = cycles per second (1 Hz = 1 cycle/sec) • A 200 MHz clock has a 1/(200· 106) = ? nanosecond cycle time • A 4 GHz clock has a 1/(4· 109) = ? nanosecond cycle time 3/5/2021 Erkay Savas 10
CPI • CPI Clocks Per Instruction – – Number of cycles spent on an instruction on average. CC = IC CPI Hard to compute. It is useful when comparing the performances of two machines with the same ISA. (Why? ) • Example: two machines with the same ISA. For a certain program we have – – Machine A: CPI = 2. 0 Machine B: CPI = 1. 2 Which machine is faster? What if machine A uses 250 ps and machine B 500 ps cycle time 3/5/2021 Erkay Savas 11
Improving Performance So, to improve performance 1. Increase the clock frequency (i. e. decrease the clock period) 2. Reduce the number of the clock cycles per program (IC CPI) 3/5/2021 Erkay Savas 12
Instruction Cycle ? • No ! • The number of cycles per instruction depends on the implementations of the instructions in hardware • The number differs for each processor (even with the same ISA) 3/5/2021 Erkay Savas 13
The Reason • Operations take different number of cycles – Multiplication takes longer than addition – Floating point operations take longer than integer operations – The access time to a register is much shorter than access to the main memory. 3/5/2021 Erkay Savas 14
Simple Formulae for CPU Time • CPU execution time = CPU clock cycles for cycle time (CC CT) • CPU execution time = CPU clock cycles for • We can write CPU clock cycles for IC CPI • Then CPU execution time = 3/5/2021 Erkay Savas a program Clock a program/Clock rate a program = (IC CPI)/Clock rate 15
Example • Computer A of 800 MHz – It runs our favorite program in 15 s • Our goal – Design computer B with the same ISA – It will run the same program in 8 s. • We will use a new technology – can increase the clock rate; – however, it will also increase CPI by 1. 25. • What clock rate should we aim to use? 3/5/2021 Erkay Savas 16
Performance • Performance is determined by execution time (CPU time) • We have also other indicators – – – # of cycles to execute program # of instructions in program (IC) # of cycles per second average # of cycles per instruction (CPI) average # of instructions per second • Common pitfall: thinking one of the above is indicative of performance when it really isn’t. 3/5/2021 Erkay Savas 17
Number of Instructions Example • A compiler designer has the following two alternatives to generate a certain piece of code with instructions A(1 cycle) , B (2 cycles), and C(3 cycles): 1. 2 106 of A, 106 of B, and 2 106 of C (IC = 5 106) 2. 4 106 of A, 106 of B, and 106 of C (IC = 6 106) – Which code sequence is faster? 3/5/2021 Erkay Savas 18
MIPS • Millions Instructions Per Second = MIPS = = IC/(Execution_time 106) IC/(CC cycle time 106) (IC clock rate)/(IC CPI 106) clock rate/(CPI 106) • A faster machine has a higher MIPS Execution_time = IC/(MIPS 106) 3/5/2021 Erkay Savas 19
A MIPS Example • A computer with 500 MHz clock – Three different classes of instructions: – A (1 cycle), B (2 cycles), C (3 cycles) • Two compilers used to produce code for a large piece of software. – Compiler 1: – 5 billion A, 1 billion B, and 1 billion C instructions. – Compiler 2: • 10 billion A, 1 billion B, and 1 billion C instructions. • Which sequence will be faster according to execution time? • Which sequence will be faster according to MIPS? 3/5/2021 Erkay Savas 20
Problems of MIPS • MIPS specifies instruction execution rate • MIPS does not take into account the capabilities of the instructions – Thus, it is impossible to compare computers with different ISA using MIPS. • MIPS is not constant, even on a single machine, depends on the application. • As we saw in the previous example, MIPS can vary inversely with performance. 3/5/2021 Erkay Savas 21
CPI example • CPI – Machine A: CPI = 10/7 = 1. 43 – Machine B: CPI = 15/12 = 1. 25 • CPU time – CPU time = (IC CPI) / clock rate – Let us assume both machines use 200 MHz clock 3/5/2021 Erkay Savas 22
Overview • • A given program will require 1. Some number of instructions 2. Some number of clock cycles 3. Some number of seconds Vocabulary – – – Cycle time: (micro or nano) seconds per cycle Clock rate (frequency): cycles per second CPI: clock per instruction MIPS: millions of instruction per second MFLOPS: millions of floating point operations per second 3/5/2021 Erkay Savas 23
Performance • Performance is ultimately determined by execution time • Is any of the following metrics good to measure performance by itself? Why? – – – # of cycles to execute a program # of instructions in a program # of cycles per second Average # of cycles per instruction Average # number of instructions per second 3/5/2021 Erkay Savas 24
Question • Assuming two machines have the same ISA, which of the following quantities are identical? – – – Clock rate CPI Execution time # of instructions MIPS 3/5/2021 Erkay Savas 25
Program Performance HW or SW component Algorithm Affects what? How? IC, possibly CPI Programming IC, CPI Language Compiler IC, CPI ISA 3/5/2021 IC, clock rate, CPI Erkay Savas 26
Benchmarks • Programs specifically chosen to measure performance – must reflect typical workload of the user • Benchmark types – – Real applications Small benchmarks Benchmark suites Synthetic benchmarks 3/5/2021 Erkay Savas 27
Real Applications • Workload: Set of programs a typical user runs day in and day out. • To use these real applications for metrics is a direct way of comparing the execution time of the workload on two machines. • Using real applications for metrics has certain restrictions: – – They are usually big Takes time to port to different machines Takes considerable time to execute Hard to observe the outcome of a certain improvement technique 3/5/2021 Erkay Savas 28
Comparing & Summarizing Performance Computer A Computer B Program 1 1 s 100 s Program 2 1000 s 100 s Total time 1001 s 200 s • A is 100 times faster than B for program 1 • B is 10 times faster than A for program 2 • For total performance, arithmetic mean is used: 3/5/2021 Erkay Savas 29
Arithmetic Mean • If each program, in the workload, do not run equal times, then we have to use weighted arithmetic mean • Suppose that the program 1 runs 10 times as often as the program 2. Which machine is faster? Program 1 (seconds) Program 2 (seconds) Weighted AM 3/5/2021 weight 10 1 - Erkay Savas Computer A Computer B 1 1000 ? 100 ? 30
Small Benchmarks • Small code segments which are common in many applications – For example, loops with certain instruction mix – for (j = 0; j<8; j++) S = S + Aj Bi-j • Good for architects and designers – Since small code segments are easy to compile and simulate even by hand, designers use these kind of benchmarks while working on a novel machine – Can be abused by compiler designers by introducing special-purpose optimizations targeted at specific benchmark. 3/5/2021 Erkay Savas 31
Benchmark Suites • SPEC (Standard Performance Evaluation Corporation) – non-profit organization that aims to produce "fair, impartial and meaningful benchmarks for computers” – Began in 1989 - SPEC 89 (CPU intensive) – companies agreed on a set of real programs and inputs which they hope reflect a typical user’s workload best. – valuable indicator of performance – can still be abused – Updates are required as the applications and their workload change by time 3/5/2021 Erkay Savas 32
SPEC Benchmark Sets • CPU Performance (SPEC CPU 2006) • Graphics (SPECviewperf) • High-performance computing (HPC 2002, MPI 2007, OMP 2001) • Java server applications (j. App. Server 2004) • • – a multi-tier benchmark for measuring the performance of Java 2 Enterprise Edition (J 2 EE) technology-based application servers. Mail systems (MAIL 2001, SPECimap 2003) Network File systems (SFS 97_R 1 (3. 0)) Web servers (SPEC WEB 99, SPEC WEB 99 SSL) More information: http: //www. spec. org/ 3/5/2021 Erkay Savas 33
SPECInt Integer Benchmarks Name Description 400. perlbench Programming Language 401. bzip 2 Compression 403. gcc C Compiler 429. mcf Combinatorial Optimization 445. gobmk Artificial Intelligence 456. hmmer Search Gene Sequence 458. sjeng Artificial Intelligence 462. libquantum Physics / Quantum Computing 464. h 264 ref Video Compression 471. omnetpp Discrete Event Simulation 473. astar Path-finding Algorithms 483. xalancbmk XML Processing
SPECfp Floating Point Benchmarks Name Type wupwise Quantum chromodynamics swim Shallow water model mgrid multigrid solver in 3 D potential field applu Parabolic/elliptic partial dif. equation mesa Three-dimensional graphics library galgel Computational fluid dynamics art Image recognition using neural nets equake Seismic wave propagation simulation facerec Image recognition of faces ammp Computational chemistry lucas Primality testing fma 3 d Crash simulation sixtrack High-energy nuclear physics acceleration design apsi meteorology; pollutant distribution
SPEC CPU 2006 – Summarizing • SPEC ratio: the execution time measurements are normalized by dividing the measured execution time by the execution time on a reference machine – Sun Microsystems Fire V 20 z, which has an AMD Opteron 252 CPU, running at 2600 MHz. – 164. gzip benchmark executes in 90. 4 s. – The reference time for this benchmark is 1400 s, – benchmark is 1400/90. 4 × 100 = 1548 (a unitless value) • Performances of different programs in the suites are summarized using “geometric mean” of SPEC ratios. 3/5/2021 Erkay Savas 36
Pentium III & Pentium 4 3/5/2021 Erkay Savas 37
Comparing Pentium III and Pentium 4 Ratio Pentium III CINT 2000/Clock rate in MHz 0. 47 CFP 2000/Clock rate in MHz 0. 34 Pentium 4 0. 36 0. 39 Implementation efficiency? 3/5/2021 Erkay Savas 38
SPEC WEB 99 System Processor # of networks Clock rate (GHz) Result 1550/1000 Pentium III 2 2 2 1 2765 1650 Pentium III 3 2 1 1. 4 1810 2500 Pentium III 8 2 4 1. 13 3435 2550 Pentium III 1 2 1 1. 26 1454 2650 Pentium 4 Xeon 5 2 4 3. 06 5698 4600 Pentium 4 Xeon 10 2 4 2. 2 4615 6400/700 Pentium III Xeon 5 4 4 0. 7 4200 6600 Pentium 4 Xeon MP 8 4 8 2 6700 8450/700 Pentium III Xeon 7 8 8 0. 7 8001 3/5/2021 # of disk # of drivers CPUs Erkay Savas 39
Power Consumption Concerns • 1. 2. 3. • • Performance studied at different levels: Maximum power Intermediate level that conserves battery life Minimum power that maximizes battery life Intel Mobile Pentium & Pentium M: two available clock rates 1. Maximum 2. Reduced clock rate Pentium M @ 1. 6/0. 6 GHz Pentium 4 -M @ 2. 4/1. 2 GHz Pentium III-M @ 1. 2/0. 8 GHz 3/5/2021 Erkay Savas 40
Three Intel Mobile Processors 3/5/2021 Erkay Savas 41
Energy Efficiency 3/5/2021 Erkay Savas 42
Synthetic Benchmarks • Artificial programs constructed to try to match the characteristics of a large set of program. • Goal: Create a single benchmark program where the execution frequency of instructions in the benchmark simulates the instruction frequency in a large set of benchmarks. • Examples: – Dhrystone, Whetstone • They are not real programs • Compiler and hardware optimizations can inflate the improvement far beyond what the same optimization would do with real programs 3/5/2021 Erkay Savas 43
Amdahl’s Law in Computing • Improving one aspect of a machine by a factor of n does not improve the overall performance by the same amount. • Speedup = (Performance after imp. ) / (Performance before imp. ) • Speedup = (Execution time before imp. )/ (Execution time after imp. ) • Execution Time After Improvement = Execution Time Unaffected + (Execution Time Affected/n) 3/5/2021 Erkay Savas 44
Amdahl’s Law • Example: Suppose a program runs in 100 s on a machine, with multiplication responsible for 80 s of this time. • How much do we have to improve the speed of multiplication if we want the program to run 4 times faster? • Can we improve the performance by a factor 5? 3/5/2021 Erkay Savas 45
Amdahl’s Law • The performance enhancement possible due to a given improvement is limited by the amount that the improved feature is used. • In previous example, it makes sense to improve multiplication since it takes 80% of all execution time. • But after certain improvement is done, the further effort to optimize the multiplication more will yield insignificant improvement. • Law of Diminishing Returns • A corollary to Amdahl’s Law is to make a common case faster. 3/5/2021 Erkay Savas 46
Examples • Suppose we enhance a machine making all floating-point instructions run five times faster. If the execution time of some benchmark before the floating-point enhancement is 10 seconds, what will the speedup be if half of the 10 seconds is spent executing floating-point instructions? • We are looking for a benchmark to show off the new floating-point unit described above, and want the overall benchmark to show a speedup of 3. One benchmark we are considering runs for 90 seconds with the old floatingpoint hardware. How much of the execution time would floating-point instructions have to account for in this program in order to yield our desired speedup on this benchmark? 3/5/2021 Erkay Savas 47
Remember • Total execution time is a consistent summary of performance – Execution Time = (IC CPI)/f • For a given architecture, performance increases come from: 1. increases in clock rate (without too much adverse CPI effects) 2. improvements in processor organization that lower CPI 3. compiler enhancements that lower CPI and/or IC 3/5/2021 Erkay Savas 48
- Slides: 48