ParallelSequentialSchedulerSvc Class Reference

This SchedulerSvc implements the IScheduler interface. More...

#include <src/ParallelSequentialSchedulerSvc.h>

Inheritance diagram for ParallelSequentialSchedulerSvc:
Collaboration diagram for ParallelSequentialSchedulerSvc:

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...
 
- Public Member Functions inherited from extends< Service, IScheduler >
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::stringgetInterfaceNames () const override
 Implementation of IInterface::getInterfaceNames. More...
 
 ~extends () override=default
 Virtual destructor. More...
 
- Public Member Functions inherited from Service
const std::stringname () 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 PropertygetProperty (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 >
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
 Declare the named property. More...
 
PropertydeclareRemoteProperty (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...
 
- Public Member Functions inherited from CommonMessagingBase
virtual ~CommonMessagingBase ()=default
 Virtual destructor. More...
 
SmartIF< IMessageSvc > & msgSvc () const
 The standard message service. More...
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream. More...
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts. More...
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS) More...
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL) More...
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING) More...
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG) More...
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE) More...
 
MsgStreammsg () 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...
 
- Public Member Functions inherited from extend_interfaces< Interfaces...>
 ~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< IHiveWhiteBoardm_whiteboard
 A shortcut to the whiteboard. More...
 
std::string m_whiteboardSvcName
 The whiteboard name. More...
 
SmartIF< IAlgResourcePoolm_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::stringm_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
 

Additional Inherited Members

- Public Types inherited from extends< Service, IScheduler >
using base_class = extends
 Typedef to this class. More...
 
using extend_interfaces_base = extend_interfaces< Interfaces...>
 Typedef to the base of this class. More...
 
- Public Types inherited from Service
typedef Gaudi::PluginService::Factory< IService *, const std::string &, ISvcLocator * > Factory
 
- Public Types inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
using base_class = CommonMessaging
 
- Public Types inherited from extend_interfaces< Interfaces...>
using ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids...>::type
 take union of the ext_iids of all Interfaces... More...
 
- Protected Member Functions inherited from Service
 ~Service () override
 Standard Destructor. More...
 
int outputLevel () const
 get the Service's output level More...
 
- Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 
- Protected Attributes inherited from Service
IntegerProperty m_outputLevel = MSG::NIL
 Service output level. More...
 
Gaudi::StateMachine::State m_state = Gaudi::StateMachine::OFFLINE
 Service state. More...
 
Gaudi::StateMachine::State m_targetState = Gaudi::StateMachine::OFFLINE
 Service state. More...
 

Detailed Description

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

Author
Daniel Funke
Version
0.1

Definition at line 41 of file ParallelSequentialSchedulerSvc.h.

Constructor & Destructor Documentation

ParallelSequentialSchedulerSvc::ParallelSequentialSchedulerSvc ( const std::string name,
ISvcLocator svc 
)

Constructor.

Definition at line 28 of file ParallelSequentialSchedulerSvc.cpp.

28  :
29  base_class(name,svcLoc) {
30 
31  declareProperty("UseTopAlgList", m_useTopAlgList = false);
32  declareProperty("ThreadPoolSize", m_threadPoolSize = -1);
33  declareProperty("WhiteboardSvc", m_whiteboardSvcName = "EventDataSvc");
34 
35 }
extends base_class
Typedef to this class.
Definition: extends.h:14
bool m_useTopAlgList
Decide if the top alglist or its flat version has to be used.
int m_threadPoolSize
Size of the threadpool initialised by TBB; a value of -1 gives TBB the freedom to choose...
std::string m_whiteboardSvcName
The whiteboard name.
Property * declareProperty(const std::string &name, T &property, const std::string &doc="none") const
Declare the named property.
Definition: Service.h:215
ParallelSequentialSchedulerSvc::~ParallelSequentialSchedulerSvc ( )

Destructor.

Definition at line 38 of file ParallelSequentialSchedulerSvc.cpp.

38 {}

Member Function Documentation

StatusCode ParallelSequentialSchedulerSvc::finalize ( )
virtual

Finalise.

Definition at line 148 of file ParallelSequentialSchedulerSvc.cpp.

148  {
149  m_tbb_sched.reset();
150 
152  if (!sc.isSuccess())
153  warning () << "Base class could not be finalized" << endmsg;
154  return sc;
155 }
StatusCode finalize() override
Definition: Service.cpp:193
std::unique_ptr< tbb::task_scheduler_init > m_tbb_sched
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
T reset(T...args)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
unsigned int ParallelSequentialSchedulerSvc::freeSlots ( )
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.

220 {return m_freeSlots;}
std::atomic_int m_freeSlots
Atomic to account for asyncronous updates by the scheduler wrt the rest.
StatusCode ParallelSequentialSchedulerSvc::initialize ( )
virtual

Initialise.

Definition at line 41 of file ParallelSequentialSchedulerSvc.cpp.

41  {
42 
43  // Initialise mother class (read properties, ...)
45  if (!sc.isSuccess())
46  warning () << "Base class could not be initialized" << endmsg;
47 
48  // Get the algo resource pool
49  m_algResourcePool = serviceLocator()->service("AlgResourcePool");
50  if (!m_algResourcePool.isValid()){
51  error() << "Error retrieving AlgResourcePool" << endmsg;
52  return StatusCode::FAILURE;
53  }
54 
55  // Get the list of algorithms
57  info() << "Found " << m_algList.size() << " algorithms" << endmsg;
58 
59  // Get Whiteboard
61  if (!m_whiteboard.isValid())
62  fatal() << "Error retrieving EventDataSvc interface IHiveWhiteBoard." << endmsg;
63 
64  // Check the MaxEventsInFlight parameters and react
65  // Deprecated for the moment
66  size_t numberOfWBSlots = m_whiteboard->getNumberOfStores();
67 
68  // Set the number of free slots
69  m_freeSlots=numberOfWBSlots;
70 
71  info() << "Allowing " << m_freeSlots << " events in flight" << endmsg;
72 
73  if(m_threadPoolSize == -1)
74  m_threadPoolSize = numberOfWBSlots;
75 
76  debug() << "Initialising a TBB thread pool of size " << m_threadPoolSize << endmsg;
77  m_tbb_sched.reset(new tbb::task_scheduler_init(m_threadPoolSize));
78 
79  // Fill the containers to convert algo names to index
82  unsigned int index=0;
83  for (IAlgorithm* algo : m_algList){
84  const std::string& name = algo->name();
87  index++;
88  }
89 
90  //initialize control flow manager
91  const AlgResourcePool* algPool = dynamic_cast<const AlgResourcePool*>(m_algResourcePool.get());
92 
94 
95  const unsigned int algosDependenciesSize=0;
96  info() << "Algodependecies size is " << algosDependenciesSize << endmsg;
97 
98  //get algorithm dependencies
99  /* Dependencies
100  0) Read deps from config file
101  1) Look for handles in algo, if none
102  2) Assume none are required
103  */
104  if (algosDependenciesSize == 0){
105  // Get the event root from the IDataManagerSvc interface of the WhiteBoard
107  std::string rootInTESName(dataMgrSvc->rootName());
108  if ("" != rootInTESName && '/'!=rootInTESName[rootInTESName.size()-1]){
109  rootInTESName = rootInTESName+"/";
110  }
111 
112  for (IAlgorithm* ialgoPtr : m_algList){
113  Algorithm* algoPtr = dynamic_cast<Algorithm*> (ialgoPtr);
114  if (nullptr == algoPtr){
115  fatal() << "Could not convert IAlgorithm into Algorithm: this will result in a crash." << endmsg;
116  }
117 
118  std::vector<Gaudi::DataHandle*> algoHandles(algoPtr->inputHandles());
119  DataObjIDColl algoDependencies;
120  if (!algoHandles.empty()){
121  info() << "Algorithm " << algoPtr->name() << " data dependencies:" << endmsg;
122 
123  DataObjIDColl inputObjs, outputObjs;
124  DHHVisitor avis(inputObjs, outputObjs);
125 
126  algoPtr->acceptDHVisitor( &avis );
127 
128  for (auto id : inputObjs) {
129  const std::string& productName = rootInTESName + id.key();
130  info() << " o Input dep for " << productName << endmsg;
131  algoDependencies.insert(id);
132  }
133 
134 
135  } else {
136  info() << "Algorithm " << algoPtr->name() << " has no data dependencies."
137  << endmsg;
138  }
139 
140  }
141  }
142 
143  return StatusCode::SUCCESS;
144 
145 }
std::list< IAlgorithm * > m_algList
Cache the list of algs to be executed.
StatusCode initialize() override
Definition: Service.cpp:68
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:324
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
std::unique_ptr< tbb::task_scheduler_init > m_tbb_sched
virtual size_t getNumberOfStores()=0
Get the number of 'slots'.
virtual std::list< IAlgorithm * > getFlatAlgList()=0
Get the flat list of algorithms.
The AlgResourcePool is a concrete implementation of the IAlgResourcePool interface.
STL class.
const std::string & name() const override
The identifying name of the algorithm object.
Definition: Algorithm.cpp:820
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:76
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:78
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
bool m_useTopAlgList
Decide if the top alglist or its flat version has to be used.
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
SmartIF< IHiveWhiteBoard > m_whiteboard
A shortcut to the whiteboard.
int m_threadPoolSize
Size of the threadpool initialised by TBB; a value of -1 gives TBB the freedom to choose...
virtual std::list< IAlgorithm * > getTopAlgList()=0
Get top list of algorithms.
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
std::string m_whiteboardSvcName
The whiteboard name.
std::atomic_int m_freeSlots
Atomic to account for asyncronous updates by the scheduler wrt the rest.
T reset(T...args)
virtual concurrency::ExecutionFlowGraph * getExecutionFlowGraph() const
The IAlgorithm is the interface implemented by the Algorithm base class.
Definition: IAlgorithm.h:25
T insert(T...args)
Base class from which all concrete algorithm classes should be derived.
Definition: Algorithm.h:74
T size(T...args)
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
bool isValid() const
Allow for check if smart pointer is valid.
Definition: SmartIF.h:62
virtual void acceptDHVisitor(IDataHandleVisitor *) const override
Definition: Algorithm.cpp:226
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
StatusCode initialize(ExecutionFlowGraph *CFGraph, const std::unordered_map< std::string, unsigned int > &algname_index_map)
Initialize the control flow manager It greps the topalg list and the index map for the algo names...
std::vector< std::string > m_algname_vect
Vector to bookkeep the information necessary to the index2name conversion.
concurrency::ExecutionFlowManager m_controlFlow
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
SmartIF< IAlgResourcePool > m_algResourcePool
Cache for the algorithm resource pool.
std::unordered_map< std::string, unsigned int > m_algname_index_map
Map to bookkeep the information necessary to the name2index conversion.
T reserve(T...args)
virtual std::vector< Gaudi::DataHandle * > inputHandles() const override
Definition: Algorithm.h:587
T emplace_back(T...args)
StatusCode ParallelSequentialSchedulerSvc::popFinishedEvent ( EventContext *&  eventContext)
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.

192  {
193 
194  m_finishedEvents.pop(eventContext);
195  debug() << "Popped slot " << eventContext->slot() << "(event "
196  << eventContext->evt() << ")" << endmsg;
197  m_freeSlots++;
198  return StatusCode::SUCCESS;
199 }
ContextID_t slot() const
Definition: EventContext.h:41
tbb::concurrent_bounded_queue< EventContext * > m_finishedEvents
Queue of finished events.
ContextEvt_t evt() const
Definition: EventContext.h:40
std::atomic_int m_freeSlots
Atomic to account for asyncronous updates by the scheduler wrt the rest.
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
StatusCode ParallelSequentialSchedulerSvc::pushNewEvent ( EventContext eventContext)
virtual

Make an event available to the scheduler.

Immediately the algortihms are executed.

Definition at line 160 of file ParallelSequentialSchedulerSvc.cpp.

160  {
161  std::vector<EventContext*> eventContexts;
162  eventContexts.push_back(eventContext);
163  eventContext->setFail(false);
164  return pushNewEvents(eventContexts);
165 }
T push_back(T...args)
virtual StatusCode pushNewEvents(std::vector< EventContext * > &eventContexts)
void setFail(const bool &b=true)
Definition: EventContext.h:65
StatusCode ParallelSequentialSchedulerSvc::pushNewEvents ( std::vector< EventContext * > &  eventContexts)
virtual

Definition at line 167 of file ParallelSequentialSchedulerSvc.cpp.

167  {
168 
169  for(auto evt : eventContexts){
170  if(m_freeSlots.load() > 0){
171  //only one thread executes scheduler --> m_freeSlots can only grow if other thread finishes
172  m_freeSlots--;
173 
174  debug() << "Enqueuing event " << evt->evt() << " @ " << evt->slot() << endmsg;
175 
176  tbb::task* t = new( tbb::task::allocate_root() )
178  tbb::task::enqueue( *t);
179  } else {
180  return StatusCode::FAILURE;
181  }
182  }
183 
184  return StatusCode::SUCCESS;
185 
186 }
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:324
std::atomic_int m_freeSlots
Atomic to account for asyncronous updates by the scheduler wrt the rest.
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
SmartIF< IAlgResourcePool > m_algResourcePool
Cache for the algorithm resource pool.
StatusCode ParallelSequentialSchedulerSvc::tryPopFinishedEvent ( EventContext *&  eventContext)
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.

205  {
206  if (m_finishedEvents.try_pop(eventContext)){
207  debug() << "Try Pop successful slot " << eventContext->slot()
208  << "(event " << eventContext->evt() << ")" << endmsg;
209  m_freeSlots++;
210  return StatusCode::SUCCESS;
211  }
212  return StatusCode::FAILURE;
213 }
ContextID_t slot() const
Definition: EventContext.h:41
tbb::concurrent_bounded_queue< EventContext * > m_finishedEvents
Queue of finished events.
ContextEvt_t evt() const
Definition: EventContext.h:40
std::atomic_int m_freeSlots
Atomic to account for asyncronous updates by the scheduler wrt the rest.
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244

Friends And Related Function Documentation

friend class SequentialTask
friend

Definition at line 112 of file ParallelSequentialSchedulerSvc.h.

Member Data Documentation

std::list<IAlgorithm*> ParallelSequentialSchedulerSvc::m_algList
private

Cache the list of algs to be executed.

Definition at line 78 of file ParallelSequentialSchedulerSvc.h.

std::unordered_map<std::string,unsigned int> ParallelSequentialSchedulerSvc::m_algname_index_map
private

Map to bookkeep the information necessary to the name2index conversion.

Definition at line 109 of file ParallelSequentialSchedulerSvc.h.

std::vector<std::string> ParallelSequentialSchedulerSvc::m_algname_vect
private

Vector to bookkeep the information necessary to the index2name conversion.

Definition at line 106 of file ParallelSequentialSchedulerSvc.h.

SmartIF<IAlgResourcePool> ParallelSequentialSchedulerSvc::m_algResourcePool
private

Cache for the algorithm resource pool.

Definition at line 94 of file ParallelSequentialSchedulerSvc.h.

concurrency::ExecutionFlowManager ParallelSequentialSchedulerSvc::m_controlFlow
private

Definition at line 103 of file ParallelSequentialSchedulerSvc.h.

tbb::concurrent_bounded_queue<EventContext*> ParallelSequentialSchedulerSvc::m_finishedEvents
private

Queue of finished events.

Definition at line 81 of file ParallelSequentialSchedulerSvc.h.

std::atomic_int ParallelSequentialSchedulerSvc::m_freeSlots
private

Atomic to account for asyncronous updates by the scheduler wrt the rest.

Definition at line 85 of file ParallelSequentialSchedulerSvc.h.

std::unique_ptr<tbb::task_scheduler_init> ParallelSequentialSchedulerSvc::m_tbb_sched
private

Definition at line 100 of file ParallelSequentialSchedulerSvc.h.

int ParallelSequentialSchedulerSvc::m_threadPoolSize
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.

bool ParallelSequentialSchedulerSvc::m_useTopAlgList
private

Decide if the top alglist or its flat version has to be used.

Definition at line 75 of file ParallelSequentialSchedulerSvc.h.

SmartIF<IHiveWhiteBoard> ParallelSequentialSchedulerSvc::m_whiteboard
private

A shortcut to the whiteboard.

Definition at line 88 of file ParallelSequentialSchedulerSvc.h.

std::string ParallelSequentialSchedulerSvc::m_whiteboardSvcName
private

The whiteboard name.

Definition at line 91 of file ParallelSequentialSchedulerSvc.h.


The documentation for this class was generated from the following files: