10 nodes = (
'/Event',
'/Event/Rec',
'/Event/DAQ')
11 for l
in open(filename).readlines():
12 if l.find(
'StoreTracer') == 0:
13 if l.find(
'Executing Algorithm') != -1:
15 if alg
not in algs.keys() : algs[alg] = (order, set(),set())
18 elif l.find(
'Done with Algorithm') != -1:
20 elif l.find(
'[EventDataSvc]') != -1
and curr:
22 if obj
in nodes :
continue 23 if obj.find(
'/Event/') == 0 : obj = obj[7:]
24 obj = obj.replace(
'/',
'_')
25 if obj
not in objs : objs.append(obj)
27 if l.find(
'RETRIEVE') != -1:
28 if obj
not in talg[1] : talg[1].
add(obj)
29 elif l.find(
'REGOBJ') != -1:
30 if obj
not in talg[2] : talg[2].
add(obj)
31 if l.find(
"TimingAuditor") != -1:
34 if algo.endswith(
"|"):
36 algo = algo.rstrip(
"|")
37 if algo
in algs.keys():
38 timing[algo] = l.split()[index]
40 for name
in algs.keys():
41 if name.startswith(algo):
42 timing[name] = l.split()[index]
45 for i, (alg,deps)
in enumerate(algs.items()):
46 if alg
in [
"PatPVOffline",
"PrsADCs"]:
continue 47 if deps[1]
or deps[2] :
49 inputs = [item
for item
in deps[1]
if item
not in (
"DAQ_ODIN",
"DAQ_RawEvent")
and item
not in deps[2]]
50 outputs = [item
for item
in deps[2]]
51 new_algo = {
"name": alg,
"inputs": inputs,
"outputs" : outputs,
"runtimes_wall" : [float(timing[alg])] }
52 all_algos.append(new_algo)
def load_brunel_scenario(filename)