wrench::ConservativeBackfillingBatchSchedulerCoreLevel

class ConservativeBackfillingBatchSchedulerCoreLevel : public wrench::HomegrownBatchScheduler

A class that defines a conservative backfilling batch scheduler.

Public Functions

explicit ConservativeBackfillingBatchSchedulerCoreLevel(BatchComputeService *cs)

Constructor.

Parameters:

cs – The BatchComputeService for which this scheduler is working

void compactSchedule()

Method to compact the schedule.

virtual std::map<std::string, double> getStartTimeEstimates(std::set<std::tuple<std::string, unsigned long, unsigned long, double>> set_of_jobs) override

Method to obtain start time estimates.

Parameters:

set_of_jobs – a set of job specs

Returns:

map of estimates

virtual void processJobCompletion(std::shared_ptr<BatchJob> batch_job) override

Method to process a job completion.

Parameters:

batch_job – the job that completed

virtual void processJobFailure(std::shared_ptr<BatchJob> batch_job) override

Method to process a job failure.

Parameters:

batch_job – the job that failed

virtual void processJobSubmission(std::shared_ptr<BatchJob> batch_job) override

Method to process a job submission.

Parameters:

batch_job – the newly submitted BatchComputeService job

virtual void processJobTermination(std::shared_ptr<BatchJob> batch_job) override

Method to process a job termination.

Parameters:

batch_job – the job that was terminated

virtual void processQueuedJobs() override

Method to schedule (possibly) the next jobs to be scheduled.

virtual std::map<std::string, std::tuple<unsigned long, double>> scheduleOnHosts(unsigned long, unsigned long, double) override

Method to figure out on which actual resources a job could be scheduled right now.

Parameters:
  • num_nodes – number of nodes

  • cores_per_node – number of cores per node

  • ram_per_node – amount of RAM

Returns:

a host:<core,RAM> map