48#ifndef GUM_SCHEDULER_H
49#define GUM_SCHEDULER_H
Class containing a schedule of operations to perform on multidims.
Scheduler(const Scheduler &from)
copy constructor
Scheduler & operator=(Scheduler &&from)
move operator
Scheduler(Size nb_threads=0, double max_megabyte_memory=0.0)
default constructor
virtual void execute(Schedule &)=0
execute all the operations of a given schedule
virtual std::pair< double, double > memoryUsage(const Schedule &)=0
returns the memory consumption used during the execution of a schedule
Scheduler & operator=(const Scheduler &from)
copy operator
virtual double maxMemory() const
returns the Max memory (in megabytes) available for executing schedules
virtual double nbOperations(const Schedule &)=0
returns an estimation of the number of elementary operations needed to perform a given schedule
double _max_memory
the max memory usage possible (in bytes)
virtual Scheduler * clone() const =0
virtual copy constructor
virtual ~Scheduler()
destructor
virtual void setMaxMemory(double megabytes)
sets an upper bound on the memory consumption admissible
Scheduler(Scheduler &&from)
move constructor
ThreadNumberManager(Size nb_threads=0)
default constructor
std::size_t Size
In aGrUM, hashed values are unsigned long int.
gum is the global namespace for all aGrUM entities
SchedulerType
the type of scheduler that can be used
Class containing a schedule of operations to perform on multidims.
the common interface of all the schedulers
A class to manage the number of threads to use in an algorithm.