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;
38 void processJobSubmission(std::shared_ptr<BatchJob> batch_job)
override;
39 void processJobFailure(std::shared_ptr<BatchJob> batch_job)
override;
40 void processJobCompletion(std::shared_ptr<BatchJob> batch_job)
override;
41 void processJobTermination(std::shared_ptr<BatchJob> batch_job)
override;
43 std::shared_ptr<BatchJob> pickNextJobToSchedule();
45 std::map <std::string, std::tuple<unsigned long, double>> scheduleOnHosts(
unsigned long,
unsigned long,
double)
override;
47 std::map<std::string, double> getStartTimeEstimates(std::set <std::tuple<std::string, unsigned long, unsigned long, double>> set_of_jobs)
override;
58 #endif //WRENCH_FCFSBATCHSCHEDULER_H