![]() |
The Gaudi Framework
v27r1
|
This SchedulerSvc implements the IScheduler interface. More...
#include <src/ParallelSequentialSchedulerSvc.h>
Public Member Functions | |
ParallelSequentialSchedulerSvc (const std::string &name, ISvcLocator *svc) | |
Constructor. More... | |
~ParallelSequentialSchedulerSvc () | |
Destructor. More... | |
virtual StatusCode | initialize () |
Initialise. More... | |
virtual StatusCode | finalize () |
Finalise. More... | |
virtual StatusCode | pushNewEvent (EventContext *eventContext) |
Make an event available to the scheduler. More... | |
virtual StatusCode | pushNewEvents (std::vector< EventContext * > &eventContexts) |
virtual StatusCode | popFinishedEvent (EventContext *&eventContext) |
Blocks until an event is availble. More... | |
virtual StatusCode | tryPopFinishedEvent (EventContext *&eventContext) |
Try to fetch an event from the scheduler. More... | |
virtual unsigned int | freeSlots () |
Get free slots number. More... | |
![]() | |
void * | i_cast (const InterfaceID &tid) const override |
Implementation of IInterface::i_cast. More... | |
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override |
Implementation of IInterface::queryInterface. More... | |
std::vector< std::string > | getInterfaceNames () const override |
Implementation of IInterface::getInterfaceNames. More... | |
~extends () override=default | |
Virtual destructor. More... | |
![]() | |
const std::string & | name () const override |
Retrieve name of the service. More... | |
StatusCode | configure () override |
StatusCode | initialize () override |
StatusCode | start () override |
StatusCode | stop () override |
StatusCode | finalize () override |
StatusCode | terminate () override |
Gaudi::StateMachine::State | FSMState () const override |
Gaudi::StateMachine::State | targetFSMState () const override |
StatusCode | reinitialize () override |
StatusCode | restart () override |
StatusCode | sysInitialize () override |
Initialize Service. More... | |
StatusCode | sysStart () override |
Initialize Service. More... | |
StatusCode | sysStop () override |
Initialize Service. More... | |
StatusCode | sysFinalize () override |
Finalize Service. More... | |
StatusCode | sysReinitialize () override |
Re-initialize the Service. More... | |
StatusCode | sysRestart () override |
Re-initialize the Service. More... | |
StatusCode | setProperty (const Property &p) override |
StatusCode | setProperty (const std::string &s) override |
StatusCode | setProperty (const std::string &n, const std::string &v) override |
StatusCode | getProperty (Property *p) const override |
const Property & | getProperty (const std::string &name) const override |
StatusCode | getProperty (const std::string &n, std::string &v) const override |
const std::vector< Property * > & | getProperties () const override |
bool | hasProperty (const std::string &name) const override |
template<class TYPE > | |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
set the property form the value More... | |
Service (std::string name, ISvcLocator *svcloc) | |
Standard Constructor. More... | |
SmartIF< ISvcLocator > & | serviceLocator () const override |
Retrieve pointer to service locator. More... | |
StatusCode | setProperties () |
Method for setting declared properties to the values specified for the job. More... | |
template<class T > | |
StatusCode | service (const std::string &name, const T *&psvc, bool createIf=true) const |
Access a service by name, creating it if it doesn't already exist. More... | |
template<class T > | |
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const |
template<typename IFace = IService> | |
SmartIF< IFace > | service (const std::string &name, bool createIf=true) const |
template<class T > | |
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const |
Access a service by name and type, creating it if it doesn't already exist. More... | |
template<class T > | |
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const |
Declare the named property. More... | |
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const |
Declare remote named properties. More... | |
template<class T > | |
StatusCode | declarePrivateTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true) |
Declare used Private tool. More... | |
template<class T > | |
StatusCode | declarePublicTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true) |
Declare used Public tool. More... | |
SmartIF< IAuditorSvc > & | auditorSvc () const |
The standard auditor service.May not be invoked before sysInitialize() has been invoked. More... | |
![]() | |
virtual | ~CommonMessagingBase ()=default |
Virtual destructor. More... | |
SmartIF< IMessageSvc > & | msgSvc () const |
The standard message service. More... | |
MsgStream & | msgStream () const |
Return an uninitialized MsgStream. More... | |
MsgStream & | msgStream (const MSG::Level level) const |
Predefined configurable message stream for the efficient printouts. More... | |
MsgStream & | always () const |
shortcut for the method msgStream(MSG::ALWAYS) More... | |
MsgStream & | fatal () const |
shortcut for the method msgStream(MSG::FATAL) More... | |
MsgStream & | err () const |
shortcut for the method msgStream(MSG::ERROR) More... | |
MsgStream & | error () const |
shortcut for the method msgStream(MSG::ERROR) More... | |
MsgStream & | warning () const |
shortcut for the method msgStream(MSG::WARNING) More... | |
MsgStream & | info () const |
shortcut for the method msgStream(MSG::INFO) More... | |
MsgStream & | debug () const |
shortcut for the method msgStream(MSG::DEBUG) More... | |
MsgStream & | verbose () const |
shortcut for the method msgStream(MSG::VERBOSE) More... | |
MsgStream & | msg () const |
shortcut for the method msgStream(MSG::INFO) More... | |
MSG::Level | msgLevel () const |
get the output level from the embedded MsgStream More... | |
MSG::Level | outputLevel () const __attribute__((deprecated)) |
Backward compatibility function for getting the output level. More... | |
bool | msgLevel (MSG::Level lvl) const |
get the output level from the embedded MsgStream More... | |
![]() | |
~extend_interfaces () override=default | |
Virtual destructor. More... | |
Private Attributes | |
bool | m_useTopAlgList |
Decide if the top alglist or its flat version has to be used. More... | |
std::list< IAlgorithm * > | m_algList |
Cache the list of algs to be executed. More... | |
tbb::concurrent_bounded_queue< EventContext * > | m_finishedEvents |
Queue of finished events. More... | |
std::atomic_int | m_freeSlots |
Atomic to account for asyncronous updates by the scheduler wrt the rest. More... | |
SmartIF< IHiveWhiteBoard > | m_whiteboard |
A shortcut to the whiteboard. More... | |
std::string | m_whiteboardSvcName |
The whiteboard name. More... | |
SmartIF< IAlgResourcePool > | m_algResourcePool |
Cache for the algorithm resource pool. More... | |
int | m_threadPoolSize |
Size of the threadpool initialised by TBB; a value of -1 gives TBB the freedom to choose. More... | |
std::unique_ptr< tbb::task_scheduler_init > | m_tbb_sched |
concurrency::ExecutionFlowManager | m_controlFlow |
std::vector< std::string > | m_algname_vect |
Vector to bookkeep the information necessary to the index2name conversion. More... | |
std::unordered_map< std::string, unsigned int > | m_algname_index_map |
Map to bookkeep the information necessary to the name2index conversion. More... | |
Friends | |
class | SequentialTask |
This SchedulerSvc implements the IScheduler interface.
It executes all the algorithms in sequence for several events in flight. It pulls the algorithms from the AlgResourcePool
Definition at line 41 of file ParallelSequentialSchedulerSvc.h.
ParallelSequentialSchedulerSvc::ParallelSequentialSchedulerSvc | ( | const std::string & | name, |
ISvcLocator * | svc | ||
) |
Constructor.
Definition at line 28 of file ParallelSequentialSchedulerSvc.cpp.
ParallelSequentialSchedulerSvc::~ParallelSequentialSchedulerSvc | ( | ) |
|
virtual |
Finalise.
Definition at line 148 of file ParallelSequentialSchedulerSvc.cpp.
|
virtual |
Get free slots number.
Given that the scheduler is sequential and its methods non reentrant, this is always 1.
Definition at line 220 of file ParallelSequentialSchedulerSvc.cpp.
|
virtual |
Initialise.
Definition at line 41 of file ParallelSequentialSchedulerSvc.cpp.
|
virtual |
Blocks until an event is availble.
Get a finished event or block until one becomes available.
Definition at line 192 of file ParallelSequentialSchedulerSvc.cpp.
|
virtual |
Make an event available to the scheduler.
Immediately the algortihms are executed.
Definition at line 160 of file ParallelSequentialSchedulerSvc.cpp.
|
virtual |
Definition at line 167 of file ParallelSequentialSchedulerSvc.cpp.
|
virtual |
Try to fetch an event from the scheduler.
Try to get a finished event, if not available just return a failure.
Definition at line 205 of file ParallelSequentialSchedulerSvc.cpp.
|
friend |
Definition at line 112 of file ParallelSequentialSchedulerSvc.h.
|
private |
Cache the list of algs to be executed.
Definition at line 78 of file ParallelSequentialSchedulerSvc.h.
|
private |
Map to bookkeep the information necessary to the name2index conversion.
Definition at line 109 of file ParallelSequentialSchedulerSvc.h.
|
private |
Vector to bookkeep the information necessary to the index2name conversion.
Definition at line 106 of file ParallelSequentialSchedulerSvc.h.
|
private |
Cache for the algorithm resource pool.
Definition at line 94 of file ParallelSequentialSchedulerSvc.h.
|
private |
Definition at line 103 of file ParallelSequentialSchedulerSvc.h.
|
private |
Queue of finished events.
Definition at line 81 of file ParallelSequentialSchedulerSvc.h.
|
private |
Atomic to account for asyncronous updates by the scheduler wrt the rest.
Definition at line 85 of file ParallelSequentialSchedulerSvc.h.
|
private |
Definition at line 100 of file ParallelSequentialSchedulerSvc.h.
|
private |
Size of the threadpool initialised by TBB; a value of -1 gives TBB the freedom to choose.
Definition at line 97 of file ParallelSequentialSchedulerSvc.h.
|
private |
Decide if the top alglist or its flat version has to be used.
Definition at line 75 of file ParallelSequentialSchedulerSvc.h.
|
private |
A shortcut to the whiteboard.
Definition at line 88 of file ParallelSequentialSchedulerSvc.h.
|
private |
The whiteboard name.
Definition at line 91 of file ParallelSequentialSchedulerSvc.h.