source: proto/RE/performance/datgen.py @ 3483

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

Script changes.

File size: 7.3 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("output.csv", "rb"))):
14                incsv.append(row)
15except TypeError:
16        readFile = open("output.csv")
17        lines = readFile.readlines()
18        readFile.close()
19        w = open("output.csv",'w')
20        w.writelines([item for item in lines[:-1]])
21        w.close()
22        for row in map(InputRow._make, csv.reader(open("output.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/cycles1.dat','bitstreams','cycles:u','',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),)),)))
49chart1.append(Datfile('../../../docs/Working/re/data/cycles2.dat','nrgrep112','cycles:u','',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),)),)))
50chart1.append(Datfile('../../../docs/Working/re/data/cycles3.dat','grep','cycles:u','',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),)),)))
51charts.append(chart1)
52
53chart2=[]
54chart2.append(Datfile('../../../docs/Working/re/data/instructions1.dat','bitstreams','instructions:u','',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),)),)))
55chart2.append(Datfile('../../../docs/Working/re/data/instructions2.dat','nrgrep112','instructions:u','',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),)),)))
56chart2.append(Datfile('../../../docs/Working/re/data/instructions3.dat','grep','instructions:u','',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),)),)))
57charts.append(chart2)
58
59chart3=[]
60chart3.append(Datfile('../../../docs/Working/re/data/ipc1.dat','bitstreams','instructions:u','cycles:u',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),)),)))
61chart3.append(Datfile('../../../docs/Working/re/data/ipc2.dat','nrgrep112','instructions:u','cycles:u',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),)),)))
62chart3.append(Datfile('../../../docs/Working/re/data/ipc3.dat','grep','instructions:u','cycles:u',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),)),)))
63charts.append(chart3)
64
65chart4=[]
66chart4.append(Datfile('../../../docs/Working/re/data/branch-misses1.dat','bitstreams','branch-misses:u','',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),)),)))
67chart4.append(Datfile('../../../docs/Working/re/data/branch-misses2.dat','nrgrep112','branch-misses:u','',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),)),)))
68chart4.append(Datfile('../../../docs/Working/re/data/branch-misses3.dat','grep','branch-misses:u','',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),)),)))
69charts.append(chart4)
70
71
72for chart in charts:
73        chartmin=10000000
74        for datfile in chart:
75                for datrow in datfile.rows:
76                        value1=0
77                        valuecount1=0
78                        value2=0
79                        valuecount2=0
80                        for row in incsv:
81                                for fileexpression in datrow.fileexpressions:
82                                        if row.expression==fileexpression.expression and row.file == fileexpression.file and row.program==datfile.program and row.stat==datfile.stat1:
83                                                if datfile.perbyte:
84                                                        value1=value1+(float(row.value)/fileexpression.filesize)
85                                                else:
86                                                        value1=value1+int(row.value)
87                                                valuecount1=valuecount1+1
88                                        if row.expression==fileexpression.expression and row.file == fileexpression.file and row.program==datfile.program and row.stat==datfile.stat2:
89                                                value2=value2+int(row.value)
90                                                valuecount2=valuecount2+1
91                        print value1
92                        print value2
93                        if valuecount1>0:
94                                value1 = value1/valuecount1
95                        if valuecount2>0:
96                                value2 = value2/valuecount2
97                        if value2>0:
98                                value = value1/value2
99                        else:
100                                value = value1
101                        if value<chartmin:
102                                chartmin=value
103        for datfile in chart:
104                f = open(datfile.file, 'w')
105                for datrow in datfile.rows:
106                        value1=0
107                        valuecount1=0
108                        value2=0
109                        valuecount2=0
110                        for row in incsv:
111                                for fileexpression in datrow.fileexpressions:
112                                        if row.expression==fileexpression.expression and row.file == fileexpression.file and row.program==datfile.program and row.stat==datfile.stat1:
113                                                if datfile.perbyte:
114                                                        value1=value1+(float(row.value)/fileexpression.filesize)
115                                                else:
116                                                        value1=value1+int(row.value)
117                                                valuecount1=valuecount1+1
118                                        if row.expression==fileexpression.expression and row.file == fileexpression.file and row.program==datfile.program and row.stat==datfile.stat2:
119                                                value2=value2+int(row.value)
120                                                valuecount2=valuecount2+1
121                        print value1
122                        print value2
123                        if valuecount1>0:
124                                value1 = value1/valuecount1
125                        if valuecount2>0:
126                                value2 = value2/valuecount2
127                        if value2>0:
128                                value = value1/value2
129                        else:
130                                value = value1
131                        if False:#value>chartmin*10:
132                                value=chartmin*10
133                        f.write(datrow.number)
134                        f.write(' ')
135                        f.write(str(value))
136                        f.write('\n')
137                f.close()
Note: See TracBrowser for help on using the repository browser.