Skip to content
Tag notes:

o Algorithm class modified in order to store the algorithm type, store the data
dependencies in form of data object handles, host the event context, switch to
the correct whiteboard slot in presence of the event context in sysExecute.

o HiveWhiteBoard service added. This service acts as a "manyfold" event store
and allows the treatment of multiple events simultaneously. It provides thread
safe object registration and access.

o HiveFwdSchedulerSvc added. Implementing the IScheduler interface,
this service is a simple state machine which takes
care of the submission of the algorithms (wrapped in a AlgoExecutionTask)
to the TBB runtime according to the presence of their data dependencies and
decisions linked to the control flow. Two helper classes are used to achieve
this goal, the DataFlowManager and the ControlFlowManager.

o AlgResourcePool service added. Provides algorithms instances and clones.
Manages the states of the algorithms (calls to initialise, resetExecuted,
finalize...). It "flattens" the top algorithms list and deduces the control
flow from the sequencers provided.

o HiveSlimEventLoopMgr class added. This is a simple version of the
eventLoopMgr which just acts as an event factory and communicate with the
scheduler svc via the IScheduler interface.

o HiveReadAlgorithm algorithm added. A fundamental piece to achieve forward
scheduling. With no data nor control flow dependencies, this algorithm is used
to preload the content of an input file into the whiteboard.

o DataObjectHandler class added. It allows the declaration of the input and
output data objects of an algorithm.

o concurrentRun.exe executable added to avoid to steer the application
execution with Python.

o CPUCruncher algorithm added. It crunches CPU for a certain amount of time
finding prime numbers using an inefficient algorithm. It is calibrated to emulate
a real machine load.

o HiveEventLoopMgr class added. Legacy: the class was part of the very first
prototype, able only to run CPUCrunchers. It is in the repository to perform
comparisons and reproduce the old results if needed.

o Athena Reco, Brunel and CMSSW Reco scenarios added. Emulate these real
workflows with number crunching algorithms. Necessary to study  the projected
application behaviour.

o InertMsgSvc service added. A thread safe, lightweight msg service not using
the TBB runtime.

o compareRootHistos.py refurbished, made faster (no pvalues spurious
recalculation) and and able to compare histograms bin by bin.

o SeqSchedSvc service added. A scheduler that schedules sequentially the
algorithms. It works with the HiveSlimEventLoopMgr for testing purposes.