GreenCloud Simulator
herosscheduler.h
Go to the documentation of this file.
1 /*
2  * herosscheduler.h
3  *
4  * Energy
5  *
6  * Please cite
7  * HEROS: Energy-Efficient Load Balancing for Heterogeneous Data Centers
8  * Mateusz Guzek, Dzmitry Kliazovich, Pascal Bouvry
9  * IEEE CLOUD 2015
10  * Available upon request at: http://hdl.handle.net/10993/21417
11  * (exact bibliography reference TBA)
12  *
13  * Created on: Jan 23, 2014
14  * Author: Guzek:Mateusz
15  */
16 
17 #ifndef HEROSSCHEDULER_H_
18 #define HEROSSCHEDULER_H_
19 
20 #include "bestscorescheduler.h"
21 
22 
23 
25 public:
27  virtual ~HerosScheduler();
28  virtual TskComAgent* scheduleTask(CloudTask* task, std::vector<ResourceProvider* > providers);
29 private:
30  virtual double calculateScore(ResourceProvider* rp);
31  double static densLoadFactor(double load,double epsilon);
32  double static linkLoadFactor(double load);
33  double static performancePerWatt(ResourceProvider* rp);
34 public:
35  double static performancePerWattMax(ResourceProvider* rp);
36 private:
37  double static herosTransformation(ResourceProvider* rp,double alpha, double beta, double gamma);
38  double epsilon;
39 
40 };
41 
42 bool herosComparator (const ProviderScore &first,const ProviderScore &second);
43 
44 #endif /* HEROSSCHEDULER_H_ */
bool herosComparator(const ProviderScore &first, const ProviderScore &second)
virtual double calculateScore(ResourceProvider *rp)
static double densLoadFactor(double load, double epsilon)
virtual ~HerosScheduler()
static double performancePerWatt(ResourceProvider *rp)
static double performancePerWattMax(ResourceProvider *rp)
static double herosTransformation(ResourceProvider *rp, double alpha, double beta, double gamma)
static double linkLoadFactor(double load)
virtual TskComAgent * scheduleTask(CloudTask *task, std::vector< ResourceProvider * > providers)