3 from Configurables
import GaudiExamplesCommonConf, CPUCruncher,HiveEventLoopMgr, HiveWhiteBoard
14 NUMBEROFEVENTSINFLIGHT = 10
15 NUMBEROFALGOSINFLIGHT = 100
23 NumberOfEvents = NUMBEROFEVENTS
24 NumberOfEventsInFlight = NUMBEROFEVENTSINFLIGHT
25 NumberOfAlgosInFlight = NUMBEROFALGOSINFLIGHT
26 NumberOfThreads = NUMBEROFTHREADS
27 CloneAlgos = CLONEALGOS
28 DumpQueues = DUMPQUEUES
43 nodes = (
'/Event',
'/Event/Rec',
'/Event/DAQ')
44 for l
in open(filename).readlines():
45 if l.find(
'StoreTracer') == 0:
46 if l.find(
'Executing Algorithm') != -1:
48 if alg
not in algs.keys() : algs[alg] = (order, set(),set())
51 elif l.find(
'Done with Algorithm') != -1:
53 elif l.find(
'[EventDataSvc]') != -1
and curr:
55 if obj
in nodes :
continue
56 if obj.find(
'/Event/') == 0 : obj = obj[7:]
57 obj = obj.replace(
'/',
'_')
58 if obj
not in objs : objs.append(obj)
60 if l.find(
'RETRIEVE') != -1:
61 if obj
not in talg[1] : talg[1].
add(obj)
62 elif l.find(
'REGOBJ') != -1:
63 if obj
not in talg[2] : talg[2].
add(obj)
64 if l.find(
"TimingAuditor") != -1:
67 if algo.endswith(
"|"):
69 algo = algo.rstrip(
"|")
70 if algo
in algs.keys():
71 timing[algo] = l.split()[index]
73 for name
in algs.keys():
74 if name.startswith(algo):
75 timing[name] = l.split()[index]
82 sTiming = json.dumps(timing)
84 f = open(
"algTimings.json",
'w')
89 for alg
in timing.keys():
90 old_timing = float(timing[alg])
91 new_timing = old_timing*Scale;
93 timing[alg]=new_timing
95 for i, (alg,deps)
in enumerate(algs.items()):
96 if alg
in [
"PatPVOffline",
"PrsADCs"]:
continue
97 if deps[1]
or deps[2] :
99 inputs = [item
for item
in deps[1]
if item
not in (
"DAQ_ODIN",
"DAQ_RawEvent")
and item
not in deps[2]]
100 outputs = [item
for item
in deps[2]]
102 avgRuntime=float(timing[alg]),
110 all_outputs.add(item)
111 all_algos.append(new_algo)
112 all_algos_inputs.append(inputs)
117 DataOutputs=[item
for item
in all_inputs.difference(all_outputs)],
120 all_algos.append(new_algo)
121 all_algos_inputs.append([])
122 return all_algos,all_algos_inputs
127 ms.OutputLevel = Verbosity
131 whiteboard = HiveWhiteBoard(
"EventDataSvc",
132 EventSlots = NumberOfEventsInFlight)
136 evtloop = HiveEventLoopMgr()
137 evtloop.MaxAlgosParallel = NumberOfAlgosInFlight
138 evtloop.MaxEventsParallel = NumberOfEventsInFlight
139 evtloop.NumThreads = NumberOfThreads
140 evtloop.CloneAlgorithms = CloneAlgos
141 evtloop.DumpQueues = DumpQueues
142 evtloop.AlgosDependencies = inputs
146 app.TopAlg = crunchers
148 app.EvtMax = NumberOfEvents
149 app.EventLoop = evtloop
150 app.ExtSvc =[whiteboard]
def load_brunel_scenario(filename)
The Application Manager class.