The Gaudi Framework  v29r0 (ff2e7097)
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=INFO)
21 
22 a1 = CPUCruncher("A1",
23  shortCalib=True,
24  varRuntime=.1,
25  avgRuntime=.5)
26 a1.outKeys = ['/Event/a1']
27 
28 a2 = CPUCruncher("A2",
29  shortCalib=True)
30 a2.inpKeys = ['/Event/a1']
31 a2.outKeys = ['/Event/a2']
32 
33 a3 = CPUCruncher("A3",
34  shortCalib=True)
35 a3.inpKeys = ['/Event/a1']
36 a3.outKeys = ['/Event/a3UPS!'] # <=== MISTAKE!
37 
38 a4 = CPUCruncher("A4",
39  shortCalib=True)
40 a4.inpKeys = ['/Event/a2', '/Event/a3']
41 a4.outKeys = ['/Event/a4']
42 
43 for algo in [a1, a2, a3, a4]:
44  algo.Cardinality = cardinality
45  algo.OutputLevel = WARNING
46 
47 ApplicationMgr(EvtMax=evtMax,
48  EvtSel='NONE',
49  ExtSvc=[whiteboard],
50  EventLoop=slimeventloopmgr,
51  TopAlg=[a1, a2, a3, a4],
52  MessageSvcType="InertMessageSvc")
Thread safe extension to the standard MessageSvc.
The Application Manager class.