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()

Overriden 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