Fixed bugs in paraseHPMC.py

This commit is contained in:
Rose Thompson 2023-11-17 12:05:22 -06:00
parent 38b327eaf8
commit d95d7130a3

View File

@ -244,7 +244,7 @@ def ReportAsText(benchmarkDict):
def Inversion(lst): def Inversion(lst):
return [x if not args.invert else 100 - x for x in lst] return [x if not args.invert else 100 - x for x in lst]
def BarGraph(seriesDict, xlabelList, BenchPerRow, FileName): def BarGraph(seriesDict, xlabelList, BenchPerRow, FileName, IncludeLegend):
index = 0 index = 0
NumberInGroup = len(seriesDict) NumberInGroup = len(seriesDict)
# Figure out width of bars. NumberInGroup bars + want 2 bar space # Figure out width of bars. NumberInGroup bars + want 2 bar space
@ -262,8 +262,8 @@ def BarGraph(seriesDict, xlabelList, BenchPerRow, FileName):
plt.xticks([r + barWidth*(NumberInGroup/2-0.5) for r in range(0, BenchPerRow)], xlabelList) plt.xticks([r + barWidth*(NumberInGroup/2-0.5) for r in range(0, BenchPerRow)], xlabelList)
plt.xlabel('Benchmark') plt.xlabel('Benchmark')
if(not args.invert): plt.ylabel('Misprediction Rate (%)') if(not args.invert): plt.ylabel('Misprediction Rate (%)')
else: plt.ylabel('Prediction Accuracy (%)') else: plt.ylabel('Prediction Accuracy (%)')
plt.legend(loc='upper left', ncol=2) if(IncludeLegend): plt.legend(loc='upper right', ncol=2)
plt.savefig(FileName) plt.savefig(FileName)
def SelectPartition(xlabelListBig, seriesDictBig, group, BenchPerRow): def SelectPartition(xlabelListBig, seriesDictBig, group, BenchPerRow):
@ -352,13 +352,13 @@ def ReportAsGraph(benchmarkDict, bar):
# index += 1 # index += 1
if(not args.summary): if(not args.summary):
size = len(benchmarkDict) NumBenchmarks = len(benchmarkDict)
sizeSqrt = math.sqrt(size) NumBenchmarksSqrt = math.sqrt(NumBenchmarks)
isSquare = math.isclose(sizeSqrt, round(sizeSqrt)) isSquare = math.isclose(NumBenchmarksSqrt, round(NumBenchmarksSqrt))
numCol = math.floor(sizeSqrt) numCol = math.floor(NumBenchmarksSqrt)
numRow = numCol + (0 if isSquare else 1) numRow = numCol + (0 if isSquare else 1)
index = 1 index = 1
BenchPerRow = 7 BenchPerRow = 5
xlabelList = [] xlabelList = []
seriesDict = {} seriesDict = {}
@ -387,11 +387,11 @@ def ReportAsGraph(benchmarkDict, bar):
#The next step will be to split the benchmarkDict into length BenchPerRow pieces then repeat the following code #The next step will be to split the benchmarkDict into length BenchPerRow pieces then repeat the following code
# on each piece. # on each piece.
for row in range(0, math.ceil(39 / BenchPerRow)): for row in range(0, math.ceil(NumBenchmarks / BenchPerRow)):
(xlabelListTrunk, seriesDictTrunk) = SelectPartition(xlabelListBig, seriesDictBig, row, BenchPerRow) (xlabelListTrunk, seriesDictTrunk) = SelectPartition(xlabelListBig, seriesDictBig, row, BenchPerRow)
FileName = 'barSegment%d.png' % row FileName = 'barSegment%d.png' % row
groupLen = len(xlabelListTrunk) groupLen = len(xlabelListTrunk)
BarGraph(seriesDictTrunk, xlabelListTrunk, groupLen, FileName) BarGraph(seriesDictTrunk, xlabelListTrunk, groupLen, FileName, (row == 0))
# main # main