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

#include <randdens.h>

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

Public Member Functions

 RandDENS ()
 
virtual ~RandDENS ()
 
virtual TskComAgentscheduleTask (CloudTask *task, std::vector< ResourceProvider * > providers)
 
- Public Member Functions inherited from ProbabilisticScheduler
 ProbabilisticScheduler ()
 
virtual ~ProbabilisticScheduler ()
 
- 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 randdens.h.

Constructor & Destructor Documentation

RandDENS::RandDENS ( )

Definition at line 11 of file randdens.cc.

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

Definition at line 15 of file randdens.cc.

15  {
16 
17 }

Member Function Documentation

double RandDENS::calculateScore ( ResourceProvider rp)
privatevirtual

Implements ProbabilisticScheduler.

Definition at line 23 of file randdens.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 
32  result += linkLoadFactor(rp->getRootHost()->rack_->link_load);
33 
34  return result;
35 }
double linkLoadFactor(double load)
Definition: randdens.cc:41
double densLoadFactor(double load, double epsilon)
Definition: randdens.cc:37
double getResTypeUtil(res_type type)
double epsilon
Definition: randdens.h:27
DcRack * rack_
Definition: dchost.h:33
double link_load
Definition: dcrack.h:17
double RandDENS::densLoadFactor ( double  load,
double  epsilon 
)
private

Definition at line 37 of file randdens.cc.

37  {
38  return 1/(1+exp(-10*(load-0.5))) - 1/(1+exp((-10/epsilon)*(load-(1-(epsilon/2)))));
39 }
double epsilon
Definition: randdens.h:27
double RandDENS::linkLoadFactor ( double  load)
private

Definition at line 41 of file randdens.cc.

41  {
42  return exp(-(load*load));
43 }
TskComAgent * RandDENS::scheduleTask ( CloudTask task,
std::vector< ResourceProvider * >  providers 
)
virtual

Reimplemented from ProbabilisticScheduler.

Definition at line 19 of file randdens.cc.

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

Member Data Documentation

double RandDENS::epsilon
private

Definition at line 27 of file randdens.h.


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