plot.py (1809B)
1 import matplotlib.pyplot as plt 2 3 h48 = [ 4 ("H48 h11 k2", 56.1, 5 [0.23, 1.15, 5.08, 31.30], 6 [0.06, 0.31, 1.31, 7.96], 7 [0.02, 0.1, 0.43, 2.48] 8 ), 9 ("H48 h10 k2", 28.1, 10 [0.34, 1.80, 7.77], 11 [0.1, 0.47, 2.00, 13.54], 12 [0.03, 0.16, 0.74, 4.43] 13 ), 14 ("H48 h9 k2", 14.1, 15 [0.42, 2.84, 12.86], 16 [0.14, 0.83, 3.82, 25.98], 17 [0.04, 0.26, 1.18, 8.31] 18 ), 19 ("H48 h8 k2", 7.1, 20 [0.86, 6.66, 27.4], 21 [0.27, 2.02, 7.94], 22 [0.08, 0.6, 2.48] 23 ), 24 ("H48 h7 k2", 3.6, 25 [1.47, 8.9, 42.46], 26 [0.35, 2.59, 12.41], 27 [0.11, 0.81, 3.91] 28 ), 29 ("H48 h6 k2", 1.8, 30 [2.28, 16.89], 31 [0.65, 4.79, 23.91], 32 [0.21, 1.53, 7.82] 33 ) 34 ] 35 36 vcube = [ 37 ("vcube 404", 31.8, 38 [0.3, 1.25, 6.87, 57.49], 39 [0.1, 0.38, 1.88, 16.98], 40 [0.03, 0.16, 0.67, 6.36] 41 ), 42 ("vcube 308", 21.2, 43 [0.2, 1.11, 6.92], 44 [0.06, 0.42, 1.95, 17.73], 45 [0.04, 0.26, 1.18, 9.53] 46 ), 47 ("vcube 208", 7.3, 48 [0.57, 4.41, 20.75], 49 [0.17, 1.49, 5.88], 50 [0.08, 0.8, 2.38] 51 ), 52 ("vcube 112", 2.4, 53 [1.01, 9.39], 54 [0.29, 3.15, 12.06], 55 [0.15, 1.66, 5.18] 56 ) 57 ] 58 59 h48_x = [i[1] for i in h48] 60 vcube_x = [i[1] for i in vcube] 61 62 def getarr(m, t, a): 63 return [i[2+t][m-17] for i in a if len(i[2+t]) > m-17] 64 65 def gethv(m, t): 66 return getarr(m, t, h48), getarr(m, t, vcube) 67 68 def showplt(plt, title, h48y, vcubey): 69 plt.clf() 70 plt.title(title) 71 plt.xlabel("Table size (GiB)") 72 plt.ylabel("Time to solve (s / cube)") 73 plt.plot(h48_x[:len(h48y)], h48y, "o--", label = "H48") 74 plt.plot(vcube_x[:len(vcubey)], vcubey, "o--", label = "vcube") 75 plt.legend(loc = "right") 76 filename = title.replace(" ", "").replace(",", "") + ".png" 77 plt.savefig("benchmarks/img/" + filename, dpi=300) 78 #plt.show() 79 80 for i in range(17, 21): 81 for j in range(0, 3): 82 title = "{} moves, {} thread{}".format( 83 i, 4**j, "s" if j > 0 else "") 84 h, v = gethv(i, j) 85 showplt(plt, title, h, v)