# Help with an 8th grade science project

dave em daveandem2000 at gmail.com
Thu Nov 20 18:33:37 CET 2014

```Hello,

I am the adult advisor (aka father) to an 8th grader who is doing a science project that will compare / benchmark CPU performance between an AMD 64 Phenom II running Ubuntu 14.04 and a Raspberry Pi 700MHz ARM.

Basic procedure:
-  Run a Python script on both computers that that stresses the CPU and measure
--  Time to complete the calculation
-- Max CPU during the calculation
-- We have chosen to do factorials and compare performance by running calculations by order of magnitude.  Our hypothesis is that we will begin to see a wider performance gap between the two computers as the factorials increase in order of magnitude.

Status:
-  We have a working program.  Pseudo code follows:

import linux_metrics
from linux_metrics import cpu_stat
import time

print 'Welcome to the stress test'
number = raw_input("Enter the number to compute the factorial:")

## function to calculate CPU usage percentage
def CPU_Percent():
cpu_pcts = cpu_stat.cpu_percents(.25)
print 'cpu utilization: %.2f%%' % (100 - cpu_pcts['idle'])
write cpu utilization to a csv file with g.write

## function to compute factorial of a given number
def factorial(n):
num = 1
while n >= 1:
num = num * n
CPU_Percent()  ****This is the function call irt Q 1 below ****
n = n - 1
return num

# Main program
Record start time by using time.time()
Call function to compute the factorial.
Record finish time by using time.time()
write time to compute to a file f.write(totalEndTime - totalStartTime)
print ("Execution time = ", totalEndTime - totalStartTime)

Questions:
1.  In the factorial() function we call the CPU_Percent() function and write the CPU utilization value to a file.
-  Is this a correct value or will the CPU utilization below lower because the factorial() function made its calculation and is now just checking the CPU utilization?
-  If we are not getting the true max CPU utilization, can someone offer a design change to accomplish this?

2.  What unit does time.time() use?  An example for calculating the factorial of 10 is our program gives:
Execution time = ', 1.5703258514404297  I presume this is telling us it took 1.57 seconds to complete the calculation?

Thanks in advance for any help / suggestions.

Best regards,
Dave

```