13#ifndef ROOT_ROOFIT_MultiProcess_ReorderQueue
14#define ROOT_ROOFIT_MultiProcess_ReorderQueue
20namespace MultiProcess {
34 void suggestTaskOrder(std::size_t job_id,
const std::vector<Task>& task_order);
35 void setTaskPriorities(std::size_t job_id,
const std::vector<std::size_t>& task_priorities);
37 std::priority_queue<OrderedJobTask>
queue_;
Queue that orders tasks according to specified task priorities.
void setTaskPriorities(std::size_t job_id, const std::vector< std::size_t > &task_priorities)
Set the priority for Job tasks.
void add(JobTask job_task) override
See Queue::add.
void suggestTaskOrder(std::size_t job_id, const std::vector< Task > &task_order)
Set the desired order for executing tasks of a Job.
std::unordered_map< std::size_t, std::vector< std::size_t > > task_priority_
std::priority_queue< OrderedJobTask > queue_
bool pop(JobTask &job_task) override
See Queue::pop.
Keeps a queue of tasks for workers and manages the queue process through its event loop.
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
combined job_object, state and task identifier type
OrderedJobTask(JobTask job_task, std::size_t task_priority)
bool operator<(const OrderedJobTask &rhs) const