wrench::FCFSBatchScheduler

class FCFSBatchScheduler : public wrench::HomegrownBatchScheduler

A class that implements a FCFS batch scheduler.

Public Functions

inline explicit FCFSBatchScheduler(BatchComputeService *cs)

Constructor.

Parameters:

cs – the batch compute service for which this scheduler is operating

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

Method to get start time estimates.

Parameters:

set_of_jobs – the set of job configurations whose start times should be estimated

Returns:

start time estimates

std::shared_ptr<BatchJob> pickNextJobToSchedule()

Overridden Method to pick the next job to schedule.

Returns:

A BatchComputeService job, or nullptr is none is found

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

No-op method.

Parameters:

batch_job – a BatchComputeService job

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

No-op method.

Parameters:

batch_job – a BatchComputeService job

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

No-op method.

Parameters:

batch_job – a BatchComputeService job

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

No-op method.

Parameters:

batch_job – a BatchComputeService job

virtual void processQueuedJobs() override

Method to process queued jobs.

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

Override Method to find hosts on which to scheduled a job.

Parameters:
  • num_nodes – the job’s requested num nodes

  • cores_per_node – the job’s num cores per node

  • ram_per_node – the job’s ram per node

Returns:

A resource list