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
--
https://mail.python.org/mailman/listinfo/python-list