33 return 1/(1+exp(-10*(load-0.5))) - 1/(1+exp((-10/epsilon)*(load-(1-(epsilon/2)))));
71 return exp(-(pow(2*load,2)));
78 vector<ProviderScore> scored_providers_;
79 vector <ResourceProvider*>::iterator iter;
80 for (iter = providers.begin(); iter!=providers.end(); iter++)
82 if ((*iter)->testSchedulingPossibility(task)){
86 if(scored_providers_.empty()){
89 vector <ProviderScore>::iterator sp;
90 sort(scored_providers_.begin(),scored_providers_.end(),
herosComparator);
91 vector<ProviderScore>::reverse_iterator rsp = scored_providers_.rbegin();
94 for (; rsp != scored_providers_.rend(); rsp++ ) {
102 int selected = (double)rand() / (double)RAND_MAX * max_n +1;
103 best = scored_providers_.at(scored_providers_.size()-selected);
106 scored_providers_.clear();
virtual double calculateScore(ResourceProvider *rp)
static double densLoadFactor(double load, double epsilon)
virtual ~HerosScheduler()
double getResTypeUtil(res_type type)
double getTotalCap(res_type type)
virtual double getMaxPower()=0
TskComAgent * getTskComAgent()
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)
double eCurrentConsumption_
bool herosComparator(const ProviderScore &first, const ProviderScore &second)
ResourceProvider * provider_