| The Gaudi Framework v32r1 (f65d50dc)

Variables
AvalancheSchedulerSimpleTest Namespace Reference

## Variables
int | evtslots = 23
int | evtMax = 50
int | cardinality = 10
int | threads = 10
| whiteboard = HiveWhiteBoard("EventDataSvc", EventSlots=evtslots)
| slimeventloopmgr
| scheduler = AvalancheSchedulerSvc(ThreadPoolSize=threads, OutputLevel=WARNING)
| OutputLevel
| shortCalib
| a1 = CPUCruncher("A1")
| outKeys
| a2 = CPUCruncher("A2")
| inpKeys
| a3 = CPUCruncher("A3")
| a4 = CPUCruncher("A4")
| Cardinality
| varRuntime
| avgRuntime
| ctrp = ContextEventCounterPtr("CNT*", Cardinality=0, OutputLevel=INFO)
| ctrd = ContextEventCounterData("CNT&", Cardinality=0, OutputLevel=INFO)
| EvtMax
| EvtSel
| ExtSvc
| EventLoop
| TopAlg
| MessageSvcType

## Detailed Description

    Reference optionfile which shows in a simple way how to take advantage of the
    Gaudi components desicated to concurrency.
    The components are:
     o HiveWhiteBoard: a convenient way to collect several TES (one per "processing
     slot"), accessible in a thread safe way, keeps a catalogue of the products
     written on each processing slot. The number of slots in the whiteboard
     determines also the number of events processed simultaneously by the scheduler.
     o AvalancheSchedulerSvc: state machine of the algorithms interfaced with the
     TBB runtime. It is responsible for the submission of the algorithms. An
     algorithm is marked ready for submission when its needed input is available.
     It deals the asynchronous termination of algorithms with a "receiver" thread
     and a thread safe queue.
     o HiveSlimEventLoopMgr: an event factory. Pushes new events and pops finished
     events to/from the scheduler. It does not manage algorithms/streams.
     o AlgResourcePool: Service managing the creation of algorithms (through the
     algorithm manager), including clones. It also manages the algorithms according
     to the resources they need (parameter NeededResources - vector of strings - of
     the Algorithm class).
     o InertMessageSvc: as the TBBMsgSvc, it manages the printing of the messages in
     a multithreaded environment.

    The CPUCruncher is not a component dealing with concurrency, but a useful
    entity to test it. It's an algorithm that simply wastes cpu.

## Variable Documentation

## ◆ a1

AvalancheSchedulerSimpleTest.a1 = CPUCruncher("A1")

Definition at line 78 of file AvalancheSchedulerSimpleTest.py.

## ◆ a2

AvalancheSchedulerSimpleTest.a2 = CPUCruncher("A2")

Definition at line 81 of file AvalancheSchedulerSimpleTest.py.

## ◆ a3

AvalancheSchedulerSimpleTest.a3 = CPUCruncher("A3")

Definition at line 85 of file AvalancheSchedulerSimpleTest.py.

## ◆ a4

AvalancheSchedulerSimpleTest.a4 = CPUCruncher("A4")

Definition at line 89 of file AvalancheSchedulerSimpleTest.py.

## ◆ avgRuntime

AvalancheSchedulerSimpleTest.avgRuntime

Definition at line 97 of file AvalancheSchedulerSimpleTest.py.

## ◆ cardinality

int AvalancheSchedulerSimpleTest.cardinality = 10

Definition at line 38 of file AvalancheSchedulerSimpleTest.py.

## ◆ Cardinality

AvalancheSchedulerSimpleTest.Cardinality

Definition at line 94 of file AvalancheSchedulerSimpleTest.py.

## ◆ ctrd

AvalancheSchedulerSimpleTest.ctrd = ContextEventCounterData("CNT&", Cardinality=0, OutputLevel=INFO)

Definition at line 100 of file AvalancheSchedulerSimpleTest.py.

## ◆ ctrp

AvalancheSchedulerSimpleTest.ctrp = ContextEventCounterPtr("CNT*", Cardinality=0, OutputLevel=INFO)

Definition at line 99 of file AvalancheSchedulerSimpleTest.py.

## ◆ EventLoop

AvalancheSchedulerSimpleTest.EventLoop

Definition at line 109 of file AvalancheSchedulerSimpleTest.py.

## ◆ evtMax

int AvalancheSchedulerSimpleTest.evtMax = 50

Definition at line 37 of file AvalancheSchedulerSimpleTest.py.

## ◆ EvtMax

AvalancheSchedulerSimpleTest.EvtMax

Definition at line 106 of file AvalancheSchedulerSimpleTest.py.

## ◆ EvtSel

AvalancheSchedulerSimpleTest.EvtSel

Definition at line 107 of file AvalancheSchedulerSimpleTest.py.

## ◆ evtslots

int AvalancheSchedulerSimpleTest.evtslots = 23

Definition at line 36 of file AvalancheSchedulerSimpleTest.py.

## ◆ ExtSvc

AvalancheSchedulerSimpleTest.ExtSvc

Definition at line 108 of file AvalancheSchedulerSimpleTest.py.

## ◆ inpKeys

AvalancheSchedulerSimpleTest.inpKeys

Definition at line 82 of file AvalancheSchedulerSimpleTest.py.

## ◆ MessageSvcType

AvalancheSchedulerSimpleTest.MessageSvcType

Definition at line 111 of file AvalancheSchedulerSimpleTest.py.

## ◆ outKeys

AvalancheSchedulerSimpleTest.outKeys

Definition at line 79 of file AvalancheSchedulerSimpleTest.py.

## ◆ OutputLevel

AvalancheSchedulerSimpleTest.OutputLevel

Definition at line 70 of file AvalancheSchedulerSimpleTest.py.

## ◆ scheduler

AvalancheSchedulerSimpleTest.scheduler = AvalancheSchedulerSvc(ThreadPoolSize=threads, OutputLevel=WARNING)

Definition at line 64 of file AvalancheSchedulerSimpleTest.py.

## ◆ shortCalib

AvalancheSchedulerSimpleTest.shortCalib

Definition at line 72 of file AvalancheSchedulerSimpleTest.py.

## ◆ slimeventloopmgr

AvalancheSchedulerSimpleTest.slimeventloopmgr

Initial value:
1 = HiveSlimEventLoopMgr(
2 SchedulerName="AvalancheSchedulerSvc", OutputLevel=DEBUG)
HiveSlimEventLoopMgr
Definition: HiveSlimEventLoopMgr.h:22

Definition at line 54 of file AvalancheSchedulerSimpleTest.py.

## ◆ threads

int AvalancheSchedulerSimpleTest.threads = 10

Definition at line 39 of file AvalancheSchedulerSimpleTest.py.

## ◆ TopAlg

AvalancheSchedulerSimpleTest.TopAlg

Definition at line 110 of file AvalancheSchedulerSimpleTest.py.

## ◆ varRuntime

AvalancheSchedulerSimpleTest.varRuntime

Definition at line 96 of file AvalancheSchedulerSimpleTest.py.

## ◆ whiteboard

AvalancheSchedulerSimpleTest.whiteboard = HiveWhiteBoard("EventDataSvc", EventSlots=evtslots)

Definition at line 46 of file AvalancheSchedulerSimpleTest.py.