4 from Configurables
import GaudiExamplesCommonConf, CPUCruncher,HiveEventLoopMgr, HiveWhiteBoard
12 NUMBEROFEVENTSINFLIGHT = 1
13 NUMBEROFALGOSINFLIGHT = 1000
20 NumberOfEvents = NUMBEROFEVENTS
21 NumberOfEventsInFlight = NUMBEROFEVENTSINFLIGHT
22 NumberOfAlgosInFlight = NUMBEROFALGOSINFLIGHT
23 NumberOfThreads = NUMBEROFTHREADS
24 CloneAlgos = CLONEALGOS
25 DumpQueues = DUMPQUEUES
30 data = open(filename).read()
32 cpu_cruncher_algos = []
33 cpu_cruncher_algos_inputs = []
36 for algo
in workflow[
"algorithms"]:
38 for starputs
in (
"inputs",
"outputs"):
39 algo[starputs] = [item.replace(
"/",
"_")
for item
in algo[starputs]]
40 if algo[starputs] == [
'']: algo[starputs] = []
41 if algo[starputs] == [
'dummy']: algo[starputs] = []
42 cleaned_inputs = [input
for input
in algo[
"inputs"]
if (input
not in algo[
"outputs"] ) ]
45 cleaned_outputs = [output
for output
in algo[
"outputs"]
if (output
not in all_outputs)]
47 avgRuntime=float(algo[
"runtimes"][0]/1000000.),
48 DataInputs = cleaned_inputs,
49 DataOutputs = cleaned_outputs
51 cpu_cruncher_algos.append(new_algo)
52 all_outputs.update(algo[
"outputs"])
53 all_inputs.update(algo[
"inputs"])
54 cpu_cruncher_algos_inputs.append(algo[
"inputs"])
60 DataOutputs=[item
for item
in all_inputs.difference(all_outputs)]
62 cpu_cruncher_algos.append(new_algo)
63 cpu_cruncher_algos_inputs.append([])
65 print [item
for item
in all_inputs.difference(all_outputs)]
67 print len(all_outputs)
68 print len(cpu_cruncher_algos)
69 return cpu_cruncher_algos,cpu_cruncher_algos_inputs
73 ms.OutputLevel = Verbosity
77 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots = NumberOfEventsInFlight)
80 evtloop = HiveEventLoopMgr()
81 evtloop.MaxAlgosParallel = NumberOfAlgosInFlight
82 evtloop.MaxEventsParallel = NumberOfEventsInFlight
83 evtloop.NumThreads = NumberOfThreads
84 evtloop.CloneAlgorithms = CloneAlgos
85 evtloop.DumpQueues = DumpQueues
86 evtloop.AlgosDependencies = inputs
90 app.TopAlg = crunchers
92 app.EvtMax = NumberOfEvents
93 app.EventLoop = evtloop
94 app.ExtSvc =[whiteboard]
The Application Manager class.
def load_athena_scenario(filename)