forked from yafengabc/pimark
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.py
executable file
·90 lines (79 loc) · 2.33 KB
/
test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/env python3
gcc="/usr/bin/gcc"
cpuinfo="/proc/cpuinfo"
import os
import time
result={"CPU":"","HW":"","GCC":"","kernel":"","PIC":"","GMPI":""}
###Get the kernel version
fi=open("/proc/version")
rd=fi.read()
fi.close()
li=rd.split()
result["kernel"]=li[2]
###Get the cpuinfo###
fi=open(cpuinfo)
rd=fi.readlines()
fi.close()
li1=[]
li2=[]
for i in rd:
if i.find("model name")==0:
li1=i.split(":")
result["CPU"]=li1[1].strip()
if i.find("Hardware")==0:
li2=i.split(":")
result["HW"]=li2[1].strip()
print ("::Testing gcc installed")
if not os.path.exists(gcc):
print("::>gcc not installed")
else:
print("::>GCC installed")
##Get the GCC version##
pip=os.popen("gcc -dumpversion")
pip2=os.popen("gcc -dumpmachine")
result["GCC"]=pip.read().strip()+":"+pip2.read().strip()
pip.close()
pip2.close()
if os.path.exists(gcc):
print("::===Benchmarking C===")
print("::Compling pi.c..")
t=time.time()
os.system("gcc -O2 pi.c -o pi -march=native")
tc1=time.time()-t
print("::>Complie time:{0}".format(tc1))
t=time.time()
os.system("./pi>pi.txt")
t1=time.time()-t
sizepi=os.path.getsize('pi.txt')
print("::>Calc time:{0}".format(t1))
os.system("rm pi pi.txt")
result["PIC"]="{0:.3F}".format(t1)
print("::Wait 10 seconds")
time.sleep(10)
print("::===Benchmarking GMP===")
print("::Compling gmpi.cpp..")
t=time.time()
os.system("g++ -O2 gmpi.cpp -o gmpi -march=native -lgmp -lgmpxx")
tc2=time.time()-t
print("::>Complie time:{0}".format(tc2))
sizegmpi=os.path.getsize('gmpi')
t=time.time()
os.system("./gmpi>pi.txt")
t2=time.time()-t
print("::>Calc time:{0}".format(t2))
sizegmpi=os.path.getsize('pi.txt')
os.system("rm gmpi pi.txt")
result["GMPI"]="{0:.3f}".format(t2)
####Commit the result to internel
import urllib
import urllib.parse
import urllib.request
url="http://104.160.34.189:8080/send"
if sizepi==100003 and sizegmpi==100012:
print("::File size is{0},{1}..OK".format(sizepi,sizegmpi))
print("::Start to commit the result to internel...")
pst=urllib.request.urlopen(url,str(result).encode('utf-8'))
print("::{0}".format(pst.read().decode().strip()))
print("::Visit:http://yafeng.linuxd.org/pimark.htm")
else:
print("!!! File size is not ok!")