source: proto/RE/performance/datgengpu.py @ 3484

Last change on this file since 3484 was 3484, checked in by bhull, 6 years ago

Perf script changes.

File size: 3.7 KB
Line 
1from subprocess import call, Popen
2from collections import *
3import csv
4import StringIO
5import os.path
6import sys
7import shutil
8
9InputRow = namedtuple('InputRow', ['file','expression','program','stat','value','value2','value3','value4'])
10
11incsv = []
12try:
13        for row in map(InputRow._make, csv.reader(open("gpuoutput.csv", "rb"))):
14                incsv.append(row)
15except TypeError:
16        readFile = open("gpuoutput.csv")
17        lines = readFile.readlines()
18        readFile.close()
19        w = open("gpuoutput.csv",'w')
20        w.writelines([item for item in lines[:-1]])
21        w.close()
22        for row in map(InputRow._make, csv.reader(open("gpuoutput.csv", "rb"))):
23                incsv.append(row)
24
25
26Datfile = namedtuple('Datfile', ['file','program','stat1','stat2','perbyte','rows'])
27Datrow = namedtuple('Datrow', ['number','fileexpressions'])
28FileExpression=namedtuple('FileExpression', ['file','expression','filesize'])
29
30charts = []
31file1='howto'
32exp1='at'
33size1=39422105
34file2='howto'
35exp2='Date'
36size2=39422105
37file3='howto'
38exp3='Email'
39size3=39422105
40file4='howto'
41exp4='URIorEmail'
42size4=39422105
43file5='roads'
44exp5='xquote'
45size5=11861751
46
47chart1=[]
48chart1.append(Datfile('../../../docs/Working/re/data/gputime.dat','gpu','runtime','',True,(Datrow('0',(FileExpression(file1,exp1,size1),)),Datrow('1',(FileExpression(file2,exp2,size2),)),Datrow('2',(FileExpression(file3,exp3,size3),)),Datrow('3',(FileExpression(file4,exp4,size4),)),Datrow('4',(FileExpression(file5,exp5,size5),)),)))
49charts.append(chart1)
50
51
52for chart in charts:
53        chartmin=10000000
54        for datfile in chart:
55                for datrow in datfile.rows:
56                        value1=0
57                        valuecount1=0
58                        value2=0
59                        valuecount2=0
60                        for row in incsv:
61                                for fileexpression in datrow.fileexpressions:
62                                        if row.expression==fileexpression.expression and row.file == fileexpression.file and row.program==datfile.program and row.stat==datfile.stat1:
63                                                if datfile.perbyte:
64                                                        value1=value1+(float(row.value)/fileexpression.filesize)
65                                                else:
66                                                        value1=value1+int(row.value)
67                                                valuecount1=valuecount1+1
68                                        if row.expression==fileexpression.expression and row.file == fileexpression.file and row.program==datfile.program and row.stat==datfile.stat2:
69                                                if datfile.perbyte:
70                                                        value2=value2+(float(row.value)/fileexpression.filesize)
71                                                else:
72                                                        value2=value2+int(row.value)                                           
73                                                valuecount2=valuecount2+1
74                        print value1
75                        print value2
76                        if valuecount1>0:
77                                value1 = value1/valuecount1
78                        if valuecount2>0:
79                                value2 = value2/valuecount2
80                        if value2>0:
81                                value = value1/value2
82                        else:
83                                value = value1
84                        if value<chartmin:
85                                chartmin=value
86        for datfile in chart:
87                f = open(datfile.file, 'w')
88                for datrow in datfile.rows:
89                        value1=0
90                        valuecount1=0
91                        value2=0
92                        valuecount2=0
93                        for row in incsv:
94                                for fileexpression in datrow.fileexpressions:
95                                        if row.expression==fileexpression.expression and row.file == fileexpression.file and row.program==datfile.program and row.stat==datfile.stat1:
96                                                if datfile.perbyte:
97                                                        value1=value1+(float(row.value)/fileexpression.filesize)
98                                                else:
99                                                        value1=value1+int(row.value)
100                                                valuecount1=valuecount1+1
101                                        if row.expression==fileexpression.expression and row.file == fileexpression.file and row.program==datfile.program and row.stat==datfile.stat2:
102                                                if datfile.perbyte:
103                                                        value2=value2+(float(row.value)/fileexpression.filesize)
104                                                else:
105                                                        value2=value2+int(row.value)                                           
106                                                valuecount2=valuecount2+1
107                        print value1
108                        print value2
109                        if valuecount1>0:
110                                value1 = value1/valuecount1
111                        if valuecount2>0:
112                                value2 = value2/valuecount2
113                        if value2>0:
114                                value = value1/value2
115                        else:
116                                value = value1
117                        if False:#value>chartmin*10:
118                                value=chartmin*10
119                        f.write(datrow.number)
120                        f.write(' ')
121                        f.write(str(value))
122                        f.write('\n')
123                f.close()
Note: See TracBrowser for help on using the repository browser.