48#ifndef GUM_SCHEDULER_PARALLEL_H
49#define GUM_SCHEDULER_PARALLEL_H
65#include <condition_variable>
Class containing a schedule of operations to perform on multidims.
SchedulerParallel(const SchedulerParallel &from)
copy constructor
SchedulerParallel(SchedulerParallel &&from)
move constructor
double nbOperations(const Schedule &) final
returns an estimation of the number of elementary operations needed to perform a given schedule
SchedulerParallel(Size max_nb_threads=0, double max_megabyte_memory=0.0)
default constructor
void setMaxMemory(double megabytes) final
sets an upper bound on the memory consumption admissible
std::pair< double, double > memoryUsage(const Schedule &) final
returns the memory consumption used during the execution of a schedule
SchedulerSequential _sequential_scheduler_
a scheduler used for computing the number of operations and memory usage
void execute(Schedule &) final
execute all the operations of a given schedule
void setNumberOfThreads(Size nb) final
sets the number of threads that can be used by the scheduler
SchedulerParallel * clone() const final
virtual copy constructor
Scheduler(Size nb_threads=0, double max_megabyte_memory=0.0)
default constructor
std::size_t Size
In aGrUM, hashed values are unsigned long int.
gum is the global namespace for all aGrUM entities
priority queues (in which an element cannot appear more than once)
a parallel scheduler that executes available operations
a scheduler that executes any available operation (chosen arbitrarily)
The class to use to execute a function by several threads.