10 #ifndef WRENCH_FCFSBATCHSCHEDULER_H
11 #define WRENCH_FCFSBATCHSCHEDULER_H
17 #include <wrench/services/compute/batch/batch_schedulers/homegrown/HomegrownBatchScheduler.h>
18 #include <wrench/services/compute/batch/BatchComputeService.h>
25 class FCFSBatchScheduler :
public HomegrownBatchScheduler {
34 explicit FCFSBatchScheduler(BatchComputeService *cs) : HomegrownBatchScheduler(cs) {}
36 void processQueuedJobs()
override;
39 void processJobSubmission(std::shared_ptr<BatchJob> batch_job)
override;
40 void processJobFailure(std::shared_ptr<BatchJob> batch_job)
override;
41 void processJobCompletion(std::shared_ptr<BatchJob> batch_job)
override;
42 void processJobTermination(std::shared_ptr<BatchJob> batch_job)
override;
44 std::shared_ptr<BatchJob> pickNextJobToSchedule();
46 std::map <std::string, std::tuple<unsigned long, double>> scheduleOnHosts(
unsigned long,
unsigned long,
double)
override;
48 std::map<std::string, double> getStartTimeEstimates(std::set <std::tuple<std::string, unsigned long, unsigned long, double>> set_of_jobs)
override;
59 #endif //WRENCH_FCFSBATCHSCHEDULER_H