12 nodes = (
'/Event',
'/Event/Rec',
'/Event/DAQ')
13 for l
in open(filename).readlines():
14 if l.find(
'StoreTracer') == 0:
15 if l.find(
'Executing Algorithm') != -1:
17 if alg
not in algs.keys():
18 algs[alg] = (order, set(), set())
21 elif l.find(
'Done with Algorithm') != -1:
23 elif l.find(
'[EventDataSvc]') != -1
and curr:
27 if obj.find(
'/Event/') == 0:
29 obj = obj.replace(
'/',
'_')
33 if l.find(
'RETRIEVE') != -1:
34 if obj
not in talg[1]:
36 elif l.find(
'REGOBJ') != -1:
37 if obj
not in talg[2]:
39 if l.find(
"TimingAuditor") != -1:
42 if algo.endswith(
"|"):
44 algo = algo.rstrip(
"|")
45 if algo
in algs.keys():
46 timing[algo] = l.split()[index]
48 for name
in algs.keys():
49 if name.startswith(algo):
50 timing[name] = l.split()[index]
53 for i, (alg, deps)
in enumerate(algs.items()):
54 if alg
in [
"PatPVOffline",
"PrsADCs"]:
56 if deps[1]
or deps[2]:
59 item
for item
in deps[1]
60 if item
not in (
"DAQ_ODIN",
61 "DAQ_RawEvent")
and item
not in deps[2]
63 outputs = [item
for item
in deps[2]]
68 "runtimes_wall": [float(timing[alg])]
70 all_algos.append(new_algo)
def load_brunel_scenario(filename)