COMS 361 Computer Organization Title: Performance Date: 9/09/2004 Lecture Number: 5
Announcements Homework 2 Due 9/14/04
Review Orders of magnitude Performance The big and small of it Relationship between Execution time and clock rate Execution time and the number of instructions Instruction and number of clocks
Outline MIPS, MOPS, FLOPS SPEC Benchmarks
MIPS MEASURE Millions of Instructions Per Second Instruction execution rate Inverse relationship to the execution time The higher the MIPS rating the better
MIPS MEASURE MIPS Problems Contains instruction count, not what the instructions do Small, simple instructions versus large, complex instructions Cannot compare machines with different ISA’s Different programs executed on the same computer can have drastically different MIPS rating
Exercise 2-15 Compare the MIPS rating of two machines, one with a floating point processor (MFP) and the other without (MNFP) Clock rate is 1000MHz for each machine Use a program with this instruction mix floating-point multiply: 10% floating-point add: 15% floating-point divide: 5% integer instructions: 70%
Exercise 2-15 MFP CPI for each instruction class floating-point multiply: 6 floating-point add: 4 floating-point divide: 20 integer instructions: 2 MNFP emulates floating point with integer instructions floating-point multiply: 30 integer instructions floating-point add: 20 integer instructions floating-point divide: 50 integer instructions
Exercise 2-15 Find CPI for MFP
Fallacies and Pitfalls Fallacy Machine performance increases proportionally to the size of the improvement Do NOT expect that doubling the clock rate will double the performance!
Fallacies and Pitfalls Amdahl’s law (law of diminishing returns) Performance enhancements are limited by the amount the enhanced feature is used Execution Time After Improvement = Execution Time Unaffected + (Execution Time Affected / Amount of Improvement ) No sense speeding up instructions that are rarely used Make the common case fast
Benchmarks "A standard of measurement or evaluation" Standard programs to measure performance Which programs? Real applications Difficult to tailor CPU design to score better Better designs will likely be better for most applications Your application! Performance report Performance should be repeatable Include all pertinent information OS, compilers, flags, number of processors
SPEC Benchmarks System Performance Evaluation Corp. (SPEC) Formed in 1988 by some workstation vendors There was a desperate need of realistic, standardized performance tests Fair and useful set of metrics to differentiate candidate systems Balance between requiring strict compliance and allowing vendors to demonstrate their advantages An ounce of honest data was (is) worth more than a pound of marketing hype Ported to a wide variety of platforms of its membership
SPEC Benchmarks Now has over 60 member companies Standardized suite of source code based upon existing applications
SPEC Benchmarks The Open Systems Group (OSG) CPU JAVA SDM SFS WEB CPU benchmarks JAVA Java client and server-side benchmarks SDM Multi-user UN*X commands benchmarks SFS File server benchmarks WEB Web server benchmarks
SPEC Benchmarks The High-Performance Group (HPG) High-performance computing applications Symmetric multiprocessor systems Workstation clusters Distributed memory parallel systems Traditional vector and vector parallel supercomputers
SPEC Benchmarks The Graphics Performance Characterization Group (GPC) SPECapc Benchmarks for graphics-intensive applications SPEC SPECopc OpenGL Performance Characterization determining the performance of the OpenGL application programming interface
SPEC CPU2000 Compute intensive performance Processor Memory Compiler Performance is more than just the processor CINT2000 compute-intensive integer performance CFP2000 compute-intensive floating point performance
CINT2000 Gzip: Data compression utility vpr: FPGA circuit placement and routing gcc: C compiler mcf : Minimum cost network flow solver crafty: Chess program parser Natural language processing eon: Ray tracing perlbmk:Perl gap: Computational group theory vortex: Object Oriented Database bzip2 : Data compression utility twolf: Place and route simulator
CFP2000 wupwise: Quantum chromodynamics swim: Shallow water modeling mgrid: Multi-grid solver in 3D potential field applu: Parabolic/elliptic partial differential equations mesa: 3D Graphics library galgel: Fluid dynamics art: Neural network simulation equake: Finite element simulation facerec Computer vision ammp: Computational chemistry lucas: Number theory
CFP2000 See for yourself fma3d: Finite element crash simulation sixtrack: Particle accelerator model apsi: Temperature, wind, velocity and distribution of pollutants See for yourself push here