13 The options file models an intra-event stall in algorithm scheduling.
14 An early exit from a group of algorithms called 'EarlyExitBranch' is performed due to
15 an inverted CF decision sot that A2 is not run. This results in an unmet DF dependency
16 for a downstream algorithm A3, leading to the stall.
20 from Configurables
import (HiveWhiteBoard, HiveSlimEventLoopMgr, CPUCrunchSvc,
21 AvalancheSchedulerSvc, AlgResourcePool, CPUCruncher)
28 whiteboard = HiveWhiteBoard(
"EventDataSvc", EventSlots=evtslots)
30 slimeventloopmgr = HiveSlimEventLoopMgr(
31 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=DEBUG)
33 scheduler = AvalancheSchedulerSvc(ThreadPoolSize=threads, OutputLevel=VERBOSE)
35 AlgResourcePool(OutputLevel=DEBUG)
37 CPUCrunchSvc(shortCalib=
True)
41 a1 = CPUCruncher(
"A1")
44 a1.InvertDecision =
True
47 a2 = CPUCruncher(
"A2")
48 a2.outKeys = [
'/Event/a2']
50 a3 = CPUCruncher(
"A3")
51 a3.inpKeys = [
'/Event/a2']
55 "EarlyExitBranch", ModeOR=
False, ShortCircuit=
True, Sequential=
True)
56 branch.Members = [a1, a2]
58 for algo
in [a1, a2, a3]:
59 algo.Cardinality = cardinality
68 EventLoop=slimeventloopmgr,
70 MessageSvcType=
"InertMessageSvc",