GreenCloud Simulator
Public Member Functions | Private Member Functions | Private Attributes | List of all members
BestDENS Class Reference

#include <bestdens.h>

Inheritance diagram for BestDENS:
Inheritance graph
[legend]
Collaboration diagram for BestDENS:
Collaboration graph
[legend]

Public Member Functions

 BestDENS ()
 
virtual ~BestDENS ()
 
virtual TskComAgentscheduleTask (CloudTask *task, std::vector< ResourceProvider * > providers)
 
- Public Member Functions inherited from BestScoreScheduler
 BestScoreScheduler ()
 
virtual ~BestScoreScheduler ()
 
- Public Member Functions inherited from ScoreScheduler
 ScoreScheduler ()
 
virtual ~ScoreScheduler ()
 
- Public Member Functions inherited from DcScheduler
 DcScheduler ()
 
virtual ~DcScheduler ()
 

Private Member Functions

virtual double calculateScore (ResourceProvider *rp)
 
double densLoadFactor (double load, double epsilon)
 
double linkLoadFactor (double load)
 

Private Attributes

double epsilon
 

Detailed Description

MultiDENS scheduler. To meaningfully use it, enableDVFS on the resource providers used by this scheduler. TODO: add networking part of DENS.

Definition at line 21 of file bestdens.h.

Constructor & Destructor Documentation

BestDENS::BestDENS ( )

Definition at line 11 of file bestdens.cc.

11  : epsilon(0.1){
12 
13 }
double epsilon
Definition: bestdens.h:27
BestDENS::~BestDENS ( )
virtual

Definition at line 15 of file bestdens.cc.

15  {
16 
17 }

Member Function Documentation

double BestDENS::calculateScore ( ResourceProvider rp)
privatevirtual

Implements BestScoreScheduler.

Definition at line 23 of file bestdens.cc.

23  {
24  double result = 0;
25  double load;
26  for(int i = FirstResType; i <= LastResType ; i++){
27  load = rp->getResTypeUtil(static_cast<res_type>(i));
28  result+= densLoadFactor(load,epsilon);
29  }
30  result=result/(LastResType+1); // normalize according to the number of dimensions
31 // std::cerr << "Res_prov " << rp->id_ << "\n";
32 // DcHost* host = rp->getRootHost();
33 // DcRack* rack = host->rack_;
34 // std::cerr << "Rack " << rack->rack_id_ << "\n";
35 // double ll = rack->link_load;
36 // std::cerr << "ll " << ll << "\n";
37  result *= pow(linkLoadFactor(rp->getRootHost()->rack_->link_load),2);
38 // result += linkLoadFactor(ll);
39 
40 
41 // double load = rp->getResTypeUtil(Computing);
42 // result = densLoadFactor(load,0.1);
43 // std::cerr << "Host " << rp->id_ /*<< "CPU load: " << load*/ << "\tDENS score: " << result << "\n";
44 
45  return result;
46 }
double linkLoadFactor(double load)
Definition: bestdens.cc:52
double densLoadFactor(double load, double epsilon)
Definition: bestdens.cc:48
double getResTypeUtil(res_type type)
double epsilon
Definition: bestdens.h:27
DcRack * rack_
Definition: dchost.h:33
double link_load
Definition: dcrack.h:17
double BestDENS::densLoadFactor ( double  load,
double  epsilon 
)
private

Definition at line 48 of file bestdens.cc.

48  {
49  return 1/(1+exp(-10*(load-0.5))) - 1/(1+exp((-10/epsilon)*(load-(1-(epsilon/2)))));
50 }
double epsilon
Definition: bestdens.h:27
double BestDENS::linkLoadFactor ( double  load)
private

Definition at line 52 of file bestdens.cc.

52  {
53  return exp(-(load*load));
54 }
TskComAgent * BestDENS::scheduleTask ( CloudTask task,
std::vector< ResourceProvider * >  providers 
)
virtual

Reimplemented from BestScoreScheduler.

Definition at line 19 of file bestdens.cc.

19  {
20  return BestScoreScheduler::scheduleTask(task,providers);
21 }
virtual TskComAgent * scheduleTask(CloudTask *task, std::vector< ResourceProvider * > providers)

Member Data Documentation

double BestDENS::epsilon
private

Definition at line 27 of file bestdens.h.


The documentation for this class was generated from the following files: