Changeset 3483


Ignore:
Timestamp:
Sep 14, 2013, 4:38:46 PM (5 years ago)
Author:
bhull
Message:

Script changes.

Location:
proto/RE/performance
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • proto/RE/performance/datgen.py

    r3474 r3483  
    99InputRow = namedtuple('InputRow', ['file','expression','program','stat','value','value2','value3','value4'])
    1010
     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)
    1124
    1225
     26Datfile = namedtuple('Datfile', ['file','program','stat1','stat2','perbyte','rows'])
     27Datrow = namedtuple('Datrow', ['number','fileexpressions'])
     28FileExpression=namedtuple('FileExpression', ['file','expression','filesize'])
    1329
    14 Datfile = namedtuple('Datfile', ['file','program','stat','rows'])
    15 Datrow = namedtuple('Datrow', ['number','fileexpressions'])
    16 FileExpression=namedtuple('FileExpression', ['file','expression'])
     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
    1746
    18 datfiles = []
    19 datfiles.append(Datfile('dat1.dat','bitstreams','cycles:u',(Datrow('0',(FileExpression('mark_twain','Twain'),)),Datrow('1',(FileExpression('mark_twain','Twain$'),)),Datrow('2',(FileExpression('mark_twain','Huck_or_Finn_'),)),Datrow('3',(FileExpression('mark_twain','a----b'),)),Datrow('4',(FileExpression('mark_twain','Tom_or_Huck'),)),)))
     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)
    2070
    2171
    22 incsv = []
    23 for row in map(InputRow._make, csv.reader(open("output.csv", "rb"))):
    24     incsv.append(row)
    25 
    26 for datfile in datfiles:
    27         f = open(datfile.file, 'w')
    28         for datrow in datfile.rows:
    29                 value=0
    30                 valuecount=0
    31                 for row in incsv:
    32                         for fileexpression in datrow.fileexpressions:
    33                                 if row.expression==fileexpression.expression and row.file == fileexpression.file and row.program==datfile.program and row.stat==datfile.stat:
    34                                         value=value+int(row.value)
    35                                         valuecount=valuecount+1
    36                 if valuecount>0:
    37                         value = value/valuecount
    38                 f.write(datrow.number)
    39                 f.write(' ')
    40                 f.write(str(value))
    41                 f.write('\n')
    42         f.close()
     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()
  • proto/RE/performance/perf.py

    r3480 r3483  
    3030        if not os.path.exists(outputpath):
    3131                os.makedirs(outputpath)
     32        if not os.path.exists(outputpath+'/'+execution.stat):           
     33                one=execute_one(execution,1)
     34                results_file = open(outputpath+'/'+execution.stat,'w')
     35                results_file.write(str(one))
     36                results_file.close()
     37        else:
     38                results_file = open(outputpath+'/'+execution.stat,'r')
     39                one=int(results_file.read())
     40                results_file.close()
    3241        # if not os.path.exists(outputpath+'/'+execution.stat):         
    3342        #       one=execute_one(execution,1)
     
    4049        #       results_file.close()
    4150
    42         one=execute_one(execution,1)
    43         results_file = open(outputpath+'/'+execution.stat,'w')
    44         results_file.write(str(one))
    45         results_file.close()   
    4651       
    4752        return one,one,one,one
     
    208213#http://lh3lh3.users.sourceforge.net/reb.shtml
    209214files.append(File('data/howto','howto',('reb',)))
     215expressions.append(Expression('@', 'at', ('reb',)))
    210216expressions.append(Expression('([a-zA-Z][a-zA-Z0-9]*)://([^ /]+)(/[^ ]*)?', 'URI', ('reb',)))
    211217expressions.append(Expression('([^ @]+)@([^ @]+)', 'Email', ('reb',)))
     
    224230expressions.append(Expression('(^|[^A-Z0-9:])([A-F0-9]{1,4}:){7}[A-F0-9]{1,4}($|[^A-Z0-9:])', 'IPv6', ('reb',)))
    225231
    226 # programs = ['bitstreams', 'agrep', 'nrgrep112', 'grep', 'pcregrep']
     232programs = ['bitstreams', 'grep', 'nrgrep112']#, 'agrep', 'pcregrep']
    227233#programs = ['bitstreams','grep']
    228 programs = ['bitstreams_avx2']
     234#programs = ['bitstreams_avx2']
    229235
    230236#stats = ['cycles:u', 'instructions:u', 'cache-misses:u', 'L1-dcache-load-misses:u', 'L1-dcache-store-misses:u', 'L1-dcache-prefetch-misses:u', 'L1-icache-load-misses:u']
    231 stats = ['cycles:u']
     237stats = ['cycles:u','instructions:u','branch-misses:u']
    232238
    233239
Note: See TracChangeset for help on using the changeset viewer.