2 from Configurables
import GaudiExamplesCommonConf, CPUCruncher, HiveSlimEventLoopMgr, HiveWhiteBoard, ForwardSchedulerSvc
8 NUMBEROFEVENTSINFLIGHT = 7
9 NUMBEROFALGOSINFLIGHT = 11
14 NumberOfEvents = NUMBEROFEVENTS
15 NumberOfEventsInFlight = NUMBEROFEVENTSINFLIGHT
16 NumberOfAlgosInFlight = NUMBEROFALGOSINFLIGHT
17 Cardinality = CARDINALITY
32 nodes = (
'/Event',
'/Event/Rec',
'/Event/DAQ')
33 for l
in open(filename).readlines():
34 if l.find(
'StoreTracer') == 0:
35 if l.find(
'Executing Algorithm') != -1:
37 if alg
not in algs.keys() : algs[alg] = (order, set(),set())
40 elif l.find(
'Done with Algorithm') != -1:
42 elif l.find(
'[EventDataSvc]') != -1
and curr:
44 if obj
in nodes :
continue
45 if obj.find(
'/Event/') == 0 : obj = obj[7:]
46 obj = obj.replace(
'/',
'_')
47 if obj
not in objs : objs.append(obj)
49 if l.find(
'RETRIEVE') != -1:
50 if obj
not in talg[1] : talg[1].
add(obj)
51 elif l.find(
'REGOBJ') != -1:
52 if obj
not in talg[2] : talg[2].
add(obj)
53 if l.find(
"TimingAuditor") != -1:
56 if algo.endswith(
"|"):
58 algo = algo.rstrip(
"|")
59 if algo
in algs.keys():
60 timing[algo] = l.split()[index]
62 for name
in algs.keys():
63 if name.startswith(algo):
64 timing[name] = l.split()[index]
73 for alg
in timing.keys():
74 old_timing = float(timing[alg])
75 new_timing = old_timing*Scale;
77 timing[alg]=new_timing
79 for i, (alg,deps)
in enumerate(algs.items()):
80 if alg
in [
"PatPVOffline",
"PrsADCs"]:
continue
81 if deps[1]
or deps[2] :
83 inputs = [item
for item
in deps[1]
if item
not in (
"DAQ_ODIN",
"DAQ_RawEvent")
and item
not in deps[2]]
84 outputs = [item
for item
in deps[2]]
86 avgRuntime=float(timing[alg]),
87 DataInputs=
map(
lambda s:
"/Event/"+s, inputs),
88 DataOutputs=
map(
lambda s:
"/Event/"+s, outputs),
97 all_algos.append(new_algo)
98 all_algos_inputs.append(inputs)
103 OutputLevel = WARNING,
104 DataOutputs=
map(
lambda s:
"/Event/"+s, [item
for item
in all_inputs.difference(all_outputs)])
106 all_algos.append(new_algo)
107 all_algos_inputs.append([])
108 for algo
in all_algos:
109 algo.Cardinality=Cardinality
110 OutputLevel = WARNING
112 return all_algos,all_algos_inputs
117 ms.OutputLevel = Verbosity
121 whiteboard = HiveWhiteBoard(
"EventDataSvc",
122 EventSlots = NumberOfEventsInFlight)
124 slimeventloopmgr = HiveSlimEventLoopMgr(OutputLevel = INFO)
126 scheduler = ForwardSchedulerSvc(MaxEventsInFlight = NumberOfEventsInFlight,
127 MaxAlgosInFlight = NumberOfAlgosInFlight,
128 OutputLevel = WARNING,
129 AlgosDependencies = inputs)
133 app.TopAlg = crunchers
135 app.EvtMax = NumberOfEvents
136 app.EventLoop = slimeventloopmgr
137 app.ExtSvc =[whiteboard]
138 app.MessageSvcType =
"TBBMessageSvc"
struct GAUDI_API map
Parametrisation class for map-like implementation.
The Application Manager class.
def load_brunel_scenario(filename)