File indexing completed on 2024-10-03 05:27:19
0001 import os.path, glob, sys
0002 import ROOT
0003 import array
0004 import math
0005
0006
0007
0008 arch = sys.argv[1]
0009 sample = sys.argv[2]
0010 build = sys.argv[3]
0011
0012 g = ROOT.TFile('benchmarkMEIF_'+arch+'_'+sample+'_'+build+'.root','recreate')
0013
0014
0015 if arch == 'KNL' :
0016 nvu = '16int'
0017 thvals = ['1','2','4','8','16','32','64','96','128','160','192','224','256']
0018 evvals = ['1','2','4','8','16','32','64','128']
0019 elif arch == 'SNB' :
0020 nvu = '8int'
0021 thvals = ['1','2','4','6','8','12','16','20','24']
0022 evvals = ['1','2','4','8','12']
0023 elif arch == 'SKL-SP' :
0024 nvu = '16int'
0025 thvals = ['1','2','4','8','16','32','48','64']
0026 evvals = ['1','2','4','8','16','32','64']
0027 elif arch == 'LNX-G' :
0028 nvu = '16int'
0029 thvals = ['1','2','4','8','16','32','48','64']
0030 evvals = ['1','2','4','8','16','32','64']
0031 elif arch == 'LNX-S' :
0032 nvu = '16int'
0033 thvals = ['1','2','4','8','16','32','48','64']
0034 evvals = ['1','2','4','8','16','32','64']
0035 else :
0036 print(arch,"is not a valid architecture! Exiting...")
0037 sys.exit(0)
0038
0039
0040 text = 'MEIF'
0041
0042
0043 grepnEV = '=== TOTAL for'
0044 grepTime = 'Total event loop time'
0045
0046
0047 xval0 = array.array('d',[0])
0048 yval0 = array.array('d',[0])
0049
0050
0051 for evval in evvals :
0052 print(arch,sample,build,"nEV:",evval)
0053
0054
0055 ev = float(evval)
0056
0057
0058 g_time = ROOT.TGraph()
0059 g_speedup = ROOT.TGraph()
0060
0061 point = 0
0062 for thval in thvals :
0063 xval = float(thval)
0064 if ev > xval: continue;
0065
0066
0067 yval = float(0)
0068 nev = float(1)
0069
0070
0071 with open('log_'+arch+'_'+sample+'_'+build+'_NVU'+nvu+'_NTH'+thval+'_NEV'+evval+'.txt') as f :
0072 for line in f :
0073 if grepnEV in line :
0074 lsplit = line.split()
0075 nev = float(lsplit[3])
0076 elif grepTime in line :
0077 lsplit = line.split()
0078 yval = float(lsplit[4])
0079
0080 yval /= nev
0081
0082
0083 print(xval,yval)
0084
0085
0086 g_time.SetPoint(point,xval,yval)
0087 point = point+1
0088
0089
0090 g_time.Write('g_'+build+'_'+text+'_nEV'+evval+'_time')
0091
0092
0093 if evval is '1' :
0094 g_time.GetPoint(0,xval0,yval0)
0095
0096
0097 point = 0
0098 for thval in thvals :
0099 xval = float(thval)
0100 if ev > xval: continue;
0101
0102
0103 xval = array.array('d',[0])
0104 yval = array.array('d',[0])
0105
0106
0107 g_time.GetPoint(point,xval,yval)
0108
0109 speedup = 0.
0110 if yval[0] > 0. :
0111 speedup = yval0[0]/yval[0]
0112
0113
0114 g_speedup.SetPoint(point,xval[0],speedup)
0115 point = point+1
0116
0117
0118 g_speedup.Write('g_'+build+'_'+text+'_nEV'+evval+'_speedup')
0119
0120 g.Write()
0121 g.Close()