Logo
logical_blocks_scheduler.hh
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../common/histogram.hh"
4 #include "../messages/filedescription.hh"
5 #include "stats_listener.hh"
6 
7 #include <vector>
8 #include <string>
9 #include <memory>
10 #include <map>
11 
12 namespace eclipse {
13 namespace logical_blocks_schedulers {
14 typedef std::map<std::string, std::string> SCHEDULER_OPTS;
15 
16 class scheduler;
17 
18 class scheduler {
19  public:
20  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) = 0;
21 
22  std::shared_ptr<stats_listener> listener;
23  std::map<std::string, std::string> options;
25 };
26 
27 std::shared_ptr<eclipse::logical_blocks_schedulers::scheduler>
29 
31  public:
32  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
33 };
34 
36  public:
37  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
38 };
39 
41  public:
42  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
43 };
44 
45 class scheduler_vlmb: public scheduler{
46  public:
47  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
48 };
49 
51  public:
52  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
53 };
54 
55 class scheduler_lean: public scheduler{
56  public:
57  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
58 };
59 
60 class scheduler_steal: public scheduler{
61  public:
62  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
63 };
64 
65 class scheduler_base: public scheduler{
66  public:
67  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
68 };
69 
70 }
71 }
Definition: histogram.hh:21
Definition: logical_blocks_scheduler.hh:65
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_base.cc:34
Definition: logical_blocks_scheduler.hh:55
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_lean.cc:33
Definition: logical_blocks_scheduler.hh:50
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_multiwave.cc:169
Definition: logical_blocks_scheduler.hh:40
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_python.cc:41
Definition: logical_blocks_scheduler.hh:35
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_score_based.cc:12
Definition: logical_blocks_scheduler.hh:30
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_simple.cc:12
Definition: logical_blocks_scheduler.hh:60
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_steal.cc:34
Definition: logical_blocks_scheduler.hh:45
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_vlmb.cc:64
std::shared_ptr< stats_listener > listener
Definition: logical_blocks_scheduler.hh:22
Histogram * boundaries
Definition: logical_blocks_scheduler.hh:24
std::map< std::string, std::string > options
Definition: logical_blocks_scheduler.hh:23
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes)=0
std::map< std::string, std::string > SCHEDULER_OPTS
Definition: logical_blocks_scheduler.hh:14
std::shared_ptr< eclipse::logical_blocks_schedulers::scheduler > scheduler_factory(std::string, Histogram *, SCHEDULER_OPTS=SCHEDULER_OPTS())
Definition: block_node.cc:12
Definition: scheduler.py:1
Definition: filedescription.hh:11