Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Project: Benchmarking CPU performance The purpose of this project is to develop your own benchmark program. The goal is to measure computer performance in the

image text in transcribed

Project: Benchmarking CPU performance The purpose of this project is to develop your own benchmark program. The goal is to measure computer performance in the area of processor bound workloads. Your benchmark should be similar to the SpeedMark benchmark. CPU performance depends on several main factors: processor speed, memory speed, caching, and bus performance. To measure CPU performance we should use workload that is similar to the most frequent actual workload. Each central processor performs operations that can be classified in the following main categories: Data transfer (move data from memory or registers to memory or registers) Arithmetic operations (integer and floating point, in various formats) Control operations (unconditional jumps, conditional jumps, and loops) Miscellaneous operations (logic operations, shifts, etc.) The first approximation of variety of computer workloads is a combination of numeric (primarily floating point) operations and combinatorial (integer and control) operations. In a general case it is reasonable to start with a benchmark program that has equal importance of numeric and combinatorial operations. Of course, that can be changed if we have evidence that the simulated actual workloads have some other distribution of operations. In this project you have to develop a processor benchmark program CPUben (preferably in C++) that measures the processor speed as follows: a. Write a function DOUBLE that predominantly uses double precision floating point operations. Typical such operations are: matrix inversion, matrix multiplication, numerical integration, processing of polynomials, etc. Adjust your function so that runs approximately 1 second or more. Let Tr be its run time. The corresponding processor speed in the floating point numeric operations area is Vf 60/Tr [operations per minute] b. Write a function INTEGER that predominantly uses integer and combinatorial operations. Typical such operations are: sort, search, other integer array processing, puzzles (such as 8 queens), recursive integer computations, etc. Adjust your function so that runs approximately 1 second or more. Let T, be its run time. The corresponding processor speed is Vi 60/Ti c. Adjust your programs so that approximately Vr= Vi . write a main program CPUben that runs DOUBLE for 10 seconds and measures Vf, and then runs INTEGER for 10 seconds and measures V. Measure Vr and Vi as precisely as possible using the clock function. Compute the average processor speed Vpro-2(/V 1/. Display Vf, Vi, and Vproc Use CPUben to compare at least three different computers. Make sure that all benchmarks are compiled and built as release versions with the maximum level of optimization. Perform the following experiments: (1) measurement of differences between release and debug versions of your programs, and (2) program execution in various environments (Windows, Cygwin, and Linux) using the same hardware. Write a report about design of your benchmark, comparison of competitive computers, experiments that you performed, and your experience with benchmarking. Additional (extra credit) work might be to write CPUben in various languages and/or using various compilers, and analyze how benchmarking results depend on the selected language or compiler

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions