All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
plotSpeedup.py
Go to the documentation of this file.
1 #! /usr/bin/env python
2 
3 """
4 Script that fetches all the logfiles from disk and reads the timings.
5 Parameters can be changed according to the working points considered.
6 Some parameters of the plots are hardcoded.
7 """
8 
9 from ROOT import *
10 
11 n_algos_in_flight_l = [1,2,5,7,10,16,20,22]
12 n_evts_in_flight_l = [1,2,4,6,7,8,9,11,13,14,15]
13 colour_l= [kRed, kBlue, kOrange, kGreen, kMagenta, kCyan]*2
14 line_style_l =[1]*6+[2]*6
15 cloneFlag_l = [True,False]
16 
17 '''
18 To be filled with files on disk of the form
19 timing_measurement_BrunelScenario_n150_eif2_aif20_nthreads24_cFalse_dqFalse.log
20 '''
21 filename_scheleton="timing_measurement_BrunelScenario_n150_eif%s_aif%s_nthreads24_c%s_dqFalse.log"
22 def getRuntime(n_algos_in_flight, n_evts_in_flight, cloneFlag):
23  filename=filename_scheleton %(n_evts_in_flight, n_algos_in_flight, cloneFlag)
24  print filename
25  rt=0.
26  for line in open(filename,"r").readlines():
27  rt=float(line[:-1])
28  #print filename
29  #print rt
30  return rt
31 
32 '''
33 Dictionary with
34 o Key = [n_algos_in_flight, n_evts_in_flight, cloneFlag]
35 o Val = Runtime
36 '''
38  runtimes={}
39  for n_algos_in_flight in n_algos_in_flight_l:
40  for n_evts_in_flight in n_evts_in_flight_l:
41  for cloneFlag in cloneFlag_l:
42  rt=getRuntime(n_algos_in_flight, n_evts_in_flight, cloneFlag)
43  runtimes[n_algos_in_flight, n_evts_in_flight, cloneFlag]=rt
44  return runtimes
45 
46 
47 def getGraphPoints(n_evts_in_flight,cloneFlag,runtimes):
48  points=[]
49  for key,rt in runtimes.items():
50  this_n_algos_in_flight, this_n_evts_in_flight, this_cloneFlag = key
51  if this_n_evts_in_flight==n_evts_in_flight and \
52  this_cloneFlag==cloneFlag:
53  points.append((this_n_algos_in_flight,rt))
54  return sorted(points)
55 
56 def getSingleGraph(n_evts_in_flight,cloneFlag,runtimes,colour,style):
57  points = getGraphPoints(n_evts_in_flight,cloneFlag,runtimes)
58  graph = TGraph(len(points))
59  graph.GetXaxis().SetTitle("Maximum # in flight algos")
60  graph.GetXaxis().SetRangeUser(0,23)
61  graph.GetYaxis().SetTitle("Runtime [s]")
62  graph.GetYaxis().SetTitleOffset(1.45)
63  graph.GetYaxis().SetRangeUser(0.1,275)
64  graph.GetYaxis().SetNdivisions(12,5,1)
65  graph.SetLineWidth(3)
66  graph.SetLineColor(colour)
67  graph.SetMarkerColor(colour)
68  graph.SetLineStyle(style)
69  graph.SetFillColor(kWhite)
70  point_n=0
71  #print points
72  for x,y in points:
73  graph.SetPoint(point_n,x,y)
74  point_n+=1
75  return graph
76 
77 def make_plot(runtimes,cloneFlag):
78  title = "Brunel 150 events"
79  clone_string=""
80  if cloneFlag:
81  clone_string="_clone"
82  title+=" (Cloning)"
83  plotname="runtime%s.pdf" %clone_string
84 
85  canvas=TCanvas(plotname,"plot",500,400)
86  canvas.SetGrid()
87  canvas.cd()
88 
89  graphs=[]
90  first=True
91  for colour, n_evts_in_flight, line_style in zip(colour_l, n_evts_in_flight_l,line_style_l):
92  print n_evts_in_flight
93  graph = getSingleGraph(n_evts_in_flight,cloneFlag,runtimes,colour,line_style)
94  opts="LSame"
95  if first:
96  opts="AL"
97  first=False
98  graph.SetTitle(title)
99  graph.Draw(opts)
100  graphs.append(graph)
101 
102  # Make Legend
103  legend=TLegend(.499,.45,.9,.9,"# Parallel Events")
104  legend.SetTextSize(0.04)
105  legend.SetFillColor(kWhite)
106  #evil
107  for graph,n in zip(graphs,n_evts_in_flight_l):
108  legend.AddEntry(graph,"%s" %n)
109  legend.Draw()
110 
111  # Add some text
112  l=TLatex(.13,.16,"#font[12]{#scale[.8]{24 Threads}}")
113  l.SetNDC()
114  l.Draw()
115 
116 
117  dummy = raw_input("Press enter to save...")
118  canvas.Print(plotname)
119 
120 
121 #-------------------------------------------------------------------------------
122 runtimes = getRuntimes()
123 
124 make_plot(runtimes,True)
125 
126 make_plot(runtimes,False)
127 
128 
129 
130 
131 
132 
133 
134 
def getRuntimes()
Definition: plotSpeedup.py:37
def getGraphPoints(n_evts_in_flight, cloneFlag, runtimes)
Definition: plotSpeedup.py:47
def make_plot(runtimes, cloneFlag)
Definition: plotSpeedup.py:77
def getRuntime(n_algos_in_flight, n_evts_in_flight, cloneFlag)
Definition: plotSpeedup.py:22
def getSingleGraph(n_evts_in_flight, cloneFlag, runtimes, colour, style)
Definition: plotSpeedup.py:56