WRENCH  1.11
Cyberinfrastructure Simulation Workbench
Overview Installation Getting Started WRENCH 101 WRENCH 102
ConservativeBackfillingBatchScheduler.h
1 
10 #ifndef WRENCH_CONSERVATIVEBACKFILLINGBATCHSCHEDULER_H
11 #define WRENCH_CONSERVATIVEBACKFILLINGBATCHSCHEDULER_H
12 
13 #include "wrench/services/compute/batch/BatchComputeService.h"
14 #include "wrench/services/compute/batch/batch_schedulers/homegrown/HomegrownBatchScheduler.h"
15 #include <wrench/services/compute/batch/batch_schedulers/homegrown/conservative_bf/NodeAvailabilityTimeLine.h>
16 
17 namespace wrench {
18 
19 /***********************/
21 /***********************/
22 
26  class ConservativeBackfillingBatchScheduler : public HomegrownBatchScheduler {
27 
28  public:
29 
30  explicit ConservativeBackfillingBatchScheduler(BatchComputeService *cs);
31 
32  void processQueuedJobs() override;
33 
34  void processJobSubmission(std::shared_ptr<BatchJob> batch_job) override;
35  void processJobFailure(std::shared_ptr<BatchJob> batch_job) override;
36  void processJobCompletion(std::shared_ptr<BatchJob> batch_job) override;
37  void processJobTermination(std::shared_ptr<BatchJob> batch_job) override;
38 
39  void compactSchedule();
40 
41  std::map <std::string, std::tuple<unsigned long, double>> scheduleOnHosts(unsigned long, unsigned long, double) override;
42 
43  std::map<std::string, double>
44  getStartTimeEstimates(std::set <std::tuple<std::string, unsigned long, unsigned long, double>> set_of_jobs) override;
45 
46  private:
47 
48  std::unique_ptr<NodeAvailabilityTimeLine> schedule;
49  };
50 
51 
52 /***********************/
54 /***********************/
55 }
56 
57 
58 
59 #endif //WRENCH_CONSERVATIVEBACKFILLINGBATCHSCHEDULER_H
wrench
Definition: Action.cpp:28