aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
gum::ScheduledInference Class Reference

the class containing the scheduler used by schedule-based inferences More...

#include <agrum/base/graphicalModels/inference/scheduler/scheduledInference.h>

Inheritance diagram for gum::ScheduledInference:
Collaboration diagram for gum::ScheduledInference:

Public Member Functions

Constructors / Destructors
 ScheduledInference (Size max_nb_threads=0, double max_megabyte_memory=0.0)
 default constructor
 ScheduledInference (const ScheduledInference &from)
 copy constructor
 ScheduledInference (ScheduledInference &&from)
 move constructor
virtual ScheduledInferenceclone () const
 virtual copy constructor
virtual ~ScheduledInference ()
 destructor
Operators
ScheduledInferenceoperator= (const ScheduledInference &from)
 copy operator
ScheduledInferenceoperator= (ScheduledInference &&from)
 move operator
Accessors/Modifiers
Schedulerscheduler () const
 returns the current scheduler
void setNumberOfThreads (Size nb) final
 sets the number max of threads that can be used
void setMaxMemory (double megabytes)
 sets an upper bound on the memory consumption admissible
virtual double maxMemory () const
 returns the Max memory (in megabytes) available for executing schedules
Accessors/Modifiers
virtual Size getNumberOfThreads () const
 returns the current max number of threads used by the class containing this ThreadNumberManager
bool isGumNumberOfThreadsOverriden () const
 indicates whether the class containing this ThreadNumberManager set its own number of threads

Private Attributes

SchedulerParallel _scheduler_parallel_
SchedulerSequential _scheduler_sequential_
Size _nb_threads_ {0}
 the max number of threads used by the class

Detailed Description

the class containing the scheduler used by schedule-based inferences

Definition at line 63 of file scheduledInference.h.

Constructor & Destructor Documentation

◆ ScheduledInference() [1/3]

gum::ScheduledInference::ScheduledInference ( Size max_nb_threads = 0,
double max_megabyte_memory = 0.0 )

default constructor

Definition at line 51 of file scheduledInference.cpp.

51 :
52 ThreadNumberManager(max_nb_threads),
53 _scheduler_parallel_(max_nb_threads, max_megabyte_memory),
54 _scheduler_sequential_(1, max_megabyte_memory) {
55 this->setMaxMemory(max_megabyte_memory);
56
57 // for debugging purposes
58 GUM_CONSTRUCTOR(ScheduledInference);
59 }
SchedulerParallel _scheduler_parallel_
void setMaxMemory(double megabytes)
sets an upper bound on the memory consumption admissible
SchedulerSequential _scheduler_sequential_
ScheduledInference(Size max_nb_threads=0, double max_megabyte_memory=0.0)
default constructor
ThreadNumberManager(Size nb_threads=0)
default constructor

References ScheduledInference(), gum::ThreadNumberManager::ThreadNumberManager(), _scheduler_parallel_, _scheduler_sequential_, and setMaxMemory().

Referenced by ScheduledInference(), ScheduledInference(), ScheduledInference(), ~ScheduledInference(), clone(), operator=(), and operator=().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ScheduledInference() [2/3]

gum::ScheduledInference::ScheduledInference ( const ScheduledInference & from)

copy constructor

Definition at line 62 of file scheduledInference.cpp.

62 :
63 ThreadNumberManager(from), _scheduler_parallel_(from._scheduler_parallel_),
64 _scheduler_sequential_(from._scheduler_sequential_) {
65 // for debugging purposes
66 GUM_CONS_CPY(ScheduledInference);
67 }

References ScheduledInference(), gum::ThreadNumberManager::ThreadNumberManager(), _scheduler_parallel_, and _scheduler_sequential_.

Here is the call graph for this function:

◆ ScheduledInference() [3/3]

gum::ScheduledInference::ScheduledInference ( ScheduledInference && from)

move constructor

Definition at line 70 of file scheduledInference.cpp.

70 :
71 ThreadNumberManager(std::move(from)), _scheduler_parallel_(from._scheduler_parallel_),
72 _scheduler_sequential_(from._scheduler_sequential_) {
73 // for debugging purposes
74 GUM_CONS_MOV(ScheduledInference);
75 }

References ScheduledInference(), gum::ThreadNumberManager::ThreadNumberManager(), _scheduler_parallel_, and _scheduler_sequential_.

Here is the call graph for this function:

◆ ~ScheduledInference()

gum::ScheduledInference::~ScheduledInference ( )
virtual

destructor

Definition at line 107 of file scheduledInference.cpp.

107 {
108 // for debugging purposes
109 GUM_DESTRUCTOR(ScheduledInference);
110 }

References ScheduledInference().

Here is the call graph for this function:

Member Function Documentation

◆ clone()

ScheduledInference * gum::ScheduledInference::clone ( ) const
virtual

virtual copy constructor

Definition at line 104 of file scheduledInference.cpp.

104{ return new ScheduledInference(*this); }

References ScheduledInference().

Here is the call graph for this function:

◆ getNumberOfThreads()

virtual Size gum::ThreadNumberManager::getNumberOfThreads ( ) const
virtualinherited

◆ isGumNumberOfThreadsOverriden()

bool gum::ThreadNumberManager::isGumNumberOfThreadsOverriden ( ) const
virtualinherited

indicates whether the class containing this ThreadNumberManager set its own number of threads

Implements gum::IThreadNumberManager.

Referenced by gum::learning::IBNLearner::createParamEstimator_(), and gum::learning::IBNLearner::createScore_().

Here is the caller graph for this function:

◆ maxMemory()

INLINE double gum::ScheduledInference::maxMemory ( ) const
virtual

returns the Max memory (in megabytes) available for executing schedules

Returns
the Max memory (in megabytes) available for executing schedules. 0 means an unlimited amount of memory

Definition at line 68 of file scheduledInference_inl.h.

68{ return _scheduler_parallel_.maxMemory(); }

References _scheduler_parallel_.

◆ operator=() [1/2]

ScheduledInference & gum::ScheduledInference::operator= ( const ScheduledInference & from)

copy operator

Definition at line 78 of file scheduledInference.cpp.

78 {
79 if (this != &from) {
80 ThreadNumberManager::operator=(std::move(from));
81 _scheduler_parallel_.setMaxMemory(from._scheduler_parallel_.maxMemory());
82 _scheduler_parallel_.setNumberOfThreads(_scheduler_parallel_.isGumNumberOfThreadsOverriden()
83 ? _scheduler_parallel_.getNumberOfThreads()
84 : 0);
85 _scheduler_sequential_.setMaxMemory(from._scheduler_sequential_.maxMemory());
86 }
87 return *this;
88 }
ThreadNumberManager & operator=(const ThreadNumberManager &from)
copy operator

References ScheduledInference(), _scheduler_parallel_, _scheduler_sequential_, gum::Scheduler::maxMemory(), and gum::ThreadNumberManager::operator=().

Here is the call graph for this function:

◆ operator=() [2/2]

ScheduledInference & gum::ScheduledInference::operator= ( ScheduledInference && from)

move operator

Definition at line 91 of file scheduledInference.cpp.

91 {
92 if (this != &from) {
94 _scheduler_parallel_.setMaxMemory(from._scheduler_parallel_.maxMemory());
95 _scheduler_parallel_.setNumberOfThreads(_scheduler_parallel_.isGumNumberOfThreadsOverriden()
96 ? _scheduler_parallel_.getNumberOfThreads()
97 : 0);
98 _scheduler_sequential_.setMaxMemory(from._scheduler_sequential_.maxMemory());
99 }
100 return *this;
101 }

References ScheduledInference(), _scheduler_parallel_, _scheduler_sequential_, and gum::ThreadNumberManager::operator=().

Here is the call graph for this function:

◆ scheduler()

INLINE Scheduler & gum::ScheduledInference::scheduler ( ) const

returns the current scheduler

Definition at line 48 of file scheduledInference_inl.h.

48 {
50 return const_cast< SchedulerParallel& >(_scheduler_parallel_);
51 else return const_cast< SchedulerSequential& >(_scheduler_sequential_);
52 }
virtual Size getNumberOfThreads() const
returns the current max number of threads used by the class containing this ThreadNumberManager

References _scheduler_parallel_, _scheduler_sequential_, and gum::ThreadNumberManager::getNumberOfThreads().

Here is the call graph for this function:

◆ setMaxMemory()

INLINE void gum::ScheduledInference::setMaxMemory ( double megabytes)

sets an upper bound on the memory consumption admissible

Parameters
megabytesthe number of megabytes that can be used for the execution of the schedule. If this number is equal to 0, then no memory limit is applied.

Definition at line 61 of file scheduledInference_inl.h.

61 {
62 if (megabytes < 0.0) megabytes = 0.0;
63 _scheduler_parallel_.setMaxMemory(megabytes);
64 _scheduler_sequential_.setMaxMemory(megabytes);
65 }

References _scheduler_parallel_, and _scheduler_sequential_.

Referenced by ScheduledInference().

Here is the caller graph for this function:

◆ setNumberOfThreads()

INLINE void gum::ScheduledInference::setNumberOfThreads ( Size nb)
finalvirtual

sets the number max of threads that can be used

Parameters
nbthe number max of threads used for executing schedules. If this number is set to 0, then it is defaulted to aGrUM's number of threads

Reimplemented from gum::ThreadNumberManager.

Definition at line 55 of file scheduledInference_inl.h.

55 {
57 _scheduler_parallel_.setNumberOfThreads(nb);
58 }
virtual void setNumberOfThreads(Size nb)
sets the number max of threads to be used by the class containing this ThreadNumberManager

References _scheduler_parallel_, and gum::ThreadNumberManager::setNumberOfThreads().

Here is the call graph for this function:

Member Data Documentation

◆ _nb_threads_

Size gum::ThreadNumberManager::_nb_threads_ {0}
privateinherited

the max number of threads used by the class

Definition at line 126 of file threadNumberManager.h.

126{0};

◆ _scheduler_parallel_

SchedulerParallel gum::ScheduledInference::_scheduler_parallel_
private

◆ _scheduler_sequential_

SchedulerSequential gum::ScheduledInference::_scheduler_sequential_
private

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