WRENCH  1.11
Cyberinfrastructure Simulation Workbench
Overview Installation Getting Started WRENCH 101 WRENCH 102
ConservativeBackfillingBatchSchedulerCoreLevel.h
1 
10 #ifndef WRENCH_CONSERVATIVEBACKFILLINGBATCHSCHEDULERCORELEVEL_H
11 #define WRENCH_CONSERVATIVEBACKFILLINGBATCHSCHEDULERCORELEVEL_H
12 
13 #include "wrench/services/compute/batch/BatchComputeService.h"
14 #include "wrench/services/compute/batch/batch_schedulers/homegrown/HomegrownBatchScheduler.h"
15 #include "CoreAvailabilityTimeLine.h"
16 
17 namespace wrench {
18 
19 /***********************/
21 /***********************/
22 
27 
28  public:
29 
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<CoreAvailabilityTimeLine> schedule;
49  };
50 
51 
52 /***********************/
54 /***********************/
55 }
56 
57 
58 
59 #endif //WRENCH_CONSERVATIVEBACKFILLINGBATCHSCHEDULERCORELEVEL_H
wrench::BatchScheduler::cs
BatchComputeService * cs
Compute service for which this scheduler is operating.
Definition: BatchScheduler.h:113
wrench::ConservativeBackfillingBatchSchedulerCoreLevel::processJobCompletion
void processJobCompletion(std::shared_ptr< BatchJob > batch_job) override
Method to process a job completion.
Definition: ConservativeBackfillingBatchSchedulerCoreLevel.cpp:200
wrench::ConservativeBackfillingBatchSchedulerCoreLevel::getStartTimeEstimates
std::map< std::string, double > getStartTimeEstimates(std::set< std::tuple< std::string, unsigned long, unsigned long, double >> set_of_jobs) override
Method to obtain start time estimates.
Definition: ConservativeBackfillingBatchSchedulerCoreLevel.cpp:298
wrench::ConservativeBackfillingBatchSchedulerCoreLevel::processJobFailure
void processJobFailure(std::shared_ptr< BatchJob > batch_job) override
Method to process a job failure.
Definition: ConservativeBackfillingBatchSchedulerCoreLevel.cpp:229
wrench::ConservativeBackfillingBatchSchedulerCoreLevel::processQueuedJobs
void processQueuedJobs() override
Method to schedule (possibly) the next jobs to be scheduled.
Definition: ConservativeBackfillingBatchSchedulerCoreLevel.cpp:66
wrench::ConservativeBackfillingBatchSchedulerCoreLevel::processJobTermination
void processJobTermination(std::shared_ptr< BatchJob > batch_job) override
Method to process a job termination.
Definition: ConservativeBackfillingBatchSchedulerCoreLevel.cpp:220
wrench::BatchComputeService
A batch_standard_and_pilot_jobs-scheduled compute service that manages a set of compute hosts and con...
Definition: BatchComputeService.h:49
wrench
Definition: Action.cpp:28
wrench::ConservativeBackfillingBatchSchedulerCoreLevel::processJobSubmission
void processJobSubmission(std::shared_ptr< BatchJob > batch_job) override
Method to process a job submission.
Definition: ConservativeBackfillingBatchSchedulerCoreLevel.cpp:33
wrench::ConservativeBackfillingBatchSchedulerCoreLevel::ConservativeBackfillingBatchSchedulerCoreLevel
ConservativeBackfillingBatchSchedulerCoreLevel(BatchComputeService *cs)
Constructor.
Definition: ConservativeBackfillingBatchSchedulerCoreLevel.cpp:25
wrench::ConservativeBackfillingBatchSchedulerCoreLevel::scheduleOnHosts
std::map< std::string, std::tuple< unsigned long, double > > scheduleOnHosts(unsigned long, unsigned long, double) override
Method to figure out on which actual resources a job could be scheduled right now.
Definition: ConservativeBackfillingBatchSchedulerCoreLevel.cpp:242
wrench::HomegrownBatchScheduler
An abstract class that defines a batch_standard_and_pilot_jobs scheduler.
Definition: HomegrownBatchScheduler.h:26
wrench::ConservativeBackfillingBatchSchedulerCoreLevel
A class that defines a conservative backfilling batch_standard_and_pilot_jobs scheduler.
Definition: ConservativeBackfillingBatchSchedulerCoreLevel.h:26
wrench::ConservativeBackfillingBatchSchedulerCoreLevel::compactSchedule
void compactSchedule()
Method to compact the schedule.
Definition: ConservativeBackfillingBatchSchedulerCoreLevel.cpp:124