BatchScheduler.h
1 
10 #ifndef WRENCH_BATCHSCHEDULER_H
11 #define WRENCH_BATCHSCHEDULER_H
12 
13 #include <deque>
14 #include "wrench/services/compute/batch/BatchJob.h"
15 
16 namespace wrench {
17 
18 /***********************/
20 /***********************/
21 
22  class BatchComputeService;
23 
28 
29  public:
30 
34  virtual ~BatchScheduler() = default;
35 
41 
49  virtual void init() = 0;
50 
54  virtual void launch() = 0;
55 
59  virtual void shutdown() = 0;
60 
64  virtual void processQueuedJobs() = 0;
65 
71  virtual void processJobSubmission(std::shared_ptr<BatchJob> batch_job) = 0;
72 
78  virtual void processJobFailure(std::shared_ptr<BatchJob> batch_job) = 0;
79 
85  virtual void processJobCompletion(std::shared_ptr<BatchJob> batch_job) = 0;
86 
92  virtual void processJobTermination(std::shared_ptr<BatchJob> batch_job) = 0;
93 
99  virtual void processUnknownJobTermination(std::string job_id) = 0;
100 
107  virtual std::map<std::string, double> getStartTimeEstimates(std::set<std::tuple<std::string, unsigned long, unsigned long, double>> set_of_jobs) = 0;
108 
109  protected:
114 
115  };
116 
117 /***********************/
119 /***********************/
120 }
121 
122 
123 #endif //WRENCH_BATCHSCHEDULER_H
virtual void processJobFailure(std::shared_ptr< BatchJob > batch_job)=0
Method to process a job failure.
virtual void processJobCompletion(std::shared_ptr< BatchJob > batch_job)=0
Method to process a job completion.
BatchComputeService * cs
Compute service for which this scheduler is operating.
Definition: BatchScheduler.h:113
virtual void processQueuedJobs()=0
Method to process queued jobs.
virtual void processJobTermination(std::shared_ptr< BatchJob > batch_job)=0
Method to process a job termination.
A batch-scheduled compute service that manages a set of compute hosts and controls access to their re...
Definition: BatchComputeService.h:49
Definition: Alarm.cpp:20
An abstract class that defines a batch scheduler.
Definition: BatchScheduler.h:27
virtual std::map< std::string, double > getStartTimeEstimates(std::set< std::tuple< std::string, unsigned long, unsigned long, double >> set_of_jobs)=0
Method to get start time estimates.
virtual void shutdown()=0
Shutdown method.
virtual ~BatchScheduler()=default
Destructor.
virtual void init()=0
Initialization method.
BatchScheduler(BatchComputeService *cs)
Constructor.
Definition: BatchScheduler.h:40
virtual void processJobSubmission(std::shared_ptr< BatchJob > batch_job)=0
Method to process a job submission.
virtual void processUnknownJobTermination(std::string job_id)=0
Method to process a job termination when the job is already forgotten (useful for batsched)
virtual void launch()=0
Launch method.