ForwardSchedulerStall.py
Go to the documentation of this file.
1 #!/usr/bin/env gaudirun.py
2 
3 from Gaudi.Configuration import *
4 from Configurables import HiveWhiteBoard, HiveSlimEventLoopMgr, ForwardSchedulerSvc, CPUCruncher
5 
6 InertMessageSvc(OutputLevel=WARNING)
7 
8 # metaconfig
9 evtslots = 10
10 evtMax = 15
11 cardinality=20
12 algosInFlight=20
13 
14 whiteboard = HiveWhiteBoard("EventDataSvc",
15  EventSlots = evtslots)
16 
17 slimeventloopmgr = HiveSlimEventLoopMgr(OutputLevel=INFO)
18 
19 scheduler = ForwardSchedulerSvc(MaxAlgosInFlight = algosInFlight,
20  OutputLevel=WARNING)
21 
22 a1 = CPUCruncher("A1",
23  shortCalib=True,
24  varRuntime=.1,
25  avgRuntime=.5 )
26 a1.DataOutputs.output_0.Path = '/Event/a1'
27 
28 a2 = CPUCruncher("A2",
29  shortCalib=True)
30 a2.DataInputs.input_0.Path = '/Event/a1'
31 a2.DataOutputs.output_0.Path = '/Event/a2'
32 
33 a3 = CPUCruncher("A3",
34  shortCalib=True)
35 a3.DataInputs.input_0.Path = '/Event/a1'
36 a3.DataOutputs.output_0.Path = '/Event/a3UPS!' #<=== MISTAKE!
37 
38 a4 = CPUCruncher("A4",
39  shortCalib=True)
40 a4.DataInputs.input_0.Path = '/Event/a2'
41 a4.DataInputs.input_1.Path = '/Event/a3'
42 a4.DataOutputs.output_0.Path = '/Event/a4'
43 
44 for algo in [a1,a2,a3,a4]:
45  algo.Cardinality = cardinality
46  algo.OutputLevel=WARNING
47 
48 ApplicationMgr( EvtMax = evtMax,
49  EvtSel = 'NONE',
50  ExtSvc =[whiteboard],
51  EventLoop = slimeventloopmgr,
52  TopAlg = [a1,a2,a3,a4],
53  MessageSvcType="InertMessageSvc")
Thread safe extension to the standard MessageSvc.
The Application Manager class.