delete static_cast<Variable*>(var);
}
-Variable* System::variable_new(resource::Action* id, double sharing_weight, double bound, int number_of_constraints)
+Variable* System::variable_new(resource::Action* id, double sharing_weight, double bound, size_t number_of_constraints)
{
- XBT_IN("(sys=%p, id=%p, weight=%f, bound=%f, num_cons =%d)", this, id, sharing_weight, bound, number_of_constraints);
+ XBT_IN("(sys=%p, id=%p, weight=%f, bound=%f, num_cons =%zu)", this, id, sharing_weight, bound, number_of_constraints);
Variable* var = static_cast<Variable*>(xbt_mallocator_get(variable_mallocator_));
var->initialize(id, sharing_weight, bound, number_of_constraints, visited_counter_ - 1);
- if (sharing_weight)
+ if (sharing_weight > 0)
variable_set.push_front(*var);
else
variable_set.push_back(*var);
* @brief Get the number of constraint associated to a variable
* @return The number of constraint associated to the variable
*/
- int get_number_of_constraint() const { return cnsts.size(); }
+ size_t get_number_of_constraint() const { return cnsts.size(); }
/**
* @brief Get the data associated to a variable
* @param bound The maximum value of the variable (-1.0 if no maximum value)
* @param number_of_constraints The maximum number of constraint to associate to the variable
*/
- Variable* variable_new(resource::Action* id, double weight_value, double bound, int number_of_constraints);
+ Variable* variable_new(resource::Action* id, double weight_value, double bound, size_t number_of_constraints);
/**
* @brief Free a variable
modified_constraint_set;
xbt_mallocator_t variable_mallocator_ =
xbt_mallocator_new(65536, System::variable_mallocator_new_f, System::variable_mallocator_free_f, nullptr);
- ;
};
class XBT_PUBLIC FairBottleneck : public System {
*********/
/* Helper function for executeParallelTask */
-static inline double has_cost(double* array, int pos)
+static inline double has_cost(double* array, size_t pos)
{
if (array)
return array[pos];
return -1.0;
}
-kernel::resource::Action* HostModel::execute_parallel(int host_nb, s4u::Host** host_list, double* flops_amount,
+kernel::resource::Action* HostModel::execute_parallel(size_t host_nb, s4u::Host** host_list, double* flops_amount,
double* bytes_amount, double rate)
{
kernel::resource::Action* action = nullptr;
int nb = 0;
double value = 0.0;
- for (int i = 0; i < host_nb * host_nb; i++) {
+ for (size_t i = 0; i < host_nb * host_nb; i++) {
if (has_cost(bytes_amount, i) > 0.0) {
nb++;
value = has_cost(bytes_amount, i);
res.push_back(actor.ciface());
return res;
}
-int HostImpl::get_actor_count()
+size_t HostImpl::get_actor_count()
{
return process_list_.size();
}
public:
HostModel() : Model(Model::UpdateAlgo::FULL) {}
- virtual kernel::resource::Action* execute_parallel(int host_nb, sg_host_t* host_list, double* flops_amount,
+ virtual kernel::resource::Action* execute_parallel(size_t host_nb, sg_host_t* host_list, double* flops_amount,
double* bytes_amount, double rate);
};
void turn_on();
void turn_off();
std::vector<s4u::ActorPtr> get_all_actors();
- int get_actor_count();
+ size_t get_actor_count();
typedef boost::intrusive::list<
kernel::actor::ActorImpl,
XBT_IN("(%s,%s,%g,%g)", src->get_cname(), dst->get_cname(), size, rate);
src->route_to(dst, route, &latency);
- xbt_assert(not route.empty() || latency,
+ xbt_assert(not route.empty() || latency > 0,
"You're trying to send data from %s to %s but there is no connecting path between these two hosts.",
src->get_cname(), dst->get_cname());
action->latency_ *= get_latency_factor(size);
action->rate_ = get_bandwidth_constraint(action->rate_, bandwidth_bound, size);
- int constraints_per_variable = route.size();
+ size_t constraints_per_variable = route.size();
constraints_per_variable += back_route.size();
if (action->latency_ > 0) {
}
}
-kernel::resource::Action* HostL07Model::execute_parallel(int host_nb, sg_host_t* host_list, double* flops_amount,
+kernel::resource::Action* HostL07Model::execute_parallel(size_t host_nb, sg_host_t* host_list, double* flops_amount,
double* bytes_amount, double rate)
{
return new L07Action(this, host_nb, host_list, flops_amount, bytes_amount, rate);
}
-L07Action::L07Action(kernel::resource::Model* model, int host_nb, sg_host_t* host_list, double* flops_amount,
+L07Action::L07Action(kernel::resource::Model* model, size_t host_nb, sg_host_t* host_list, double* flops_amount,
double* bytes_amount, double rate)
: CpuAction(model, 1, 0), computationAmount_(flops_amount), communicationAmount_(bytes_amount), rate_(rate)
{
- int nb_link = 0;
- int nb_used_host = 0; /* Only the hosts with something to compute (>0 flops) are counted) */
+ size_t link_nb = 0;
+ size_t used_host_nb = 0; /* Only the hosts with something to compute (>0 flops) are counted) */
double latency = 0.0;
this->set_last_update();
this->hostList_.reserve(host_nb);
- for (int i = 0; i < host_nb; i++)
+ for (size_t i = 0; i < host_nb; i++)
this->hostList_.push_back(host_list[i]);
if (flops_amount != nullptr)
- for (int i = 0; i < host_nb; i++)
+ for (size_t i = 0; i < host_nb; i++)
if (flops_amount[i] > 0)
- nb_used_host++;
+ used_host_nb++;
/* Compute the number of affected resources... */
if(bytes_amount != nullptr) {
std::unordered_set<const char*> affected_links;
- for (int i = 0; i < host_nb; i++) {
- for (int j = 0; j < host_nb; j++) {
+ for (size_t i = 0; i < host_nb; i++) {
+ for (size_t j = 0; j < host_nb; j++) {
if (bytes_amount[i * host_nb + j] > 0) {
double lat=0.0;
}
}
- nb_link = affected_links.size();
+ link_nb = affected_links.size();
}
- XBT_DEBUG("Creating a parallel task (%p) with %d hosts and %d unique links.", this, host_nb, nb_link);
+ XBT_DEBUG("Creating a parallel task (%p) with %zu hosts and %zu unique links.", this, host_nb, link_nb);
latency_ = latency;
- set_variable(model->get_maxmin_system()->variable_new(this, 1.0, (rate > 0 ? rate : -1.0), host_nb + nb_link));
+ set_variable(model->get_maxmin_system()->variable_new(this, 1.0, (rate > 0 ? rate : -1.0), host_nb + link_nb));
if (latency_ > 0)
model->get_maxmin_system()->update_variable_weight(get_variable(), 0.0);
/* Expend it for the CPUs even if there is nothing to compute, to make sure that it gets expended even if there is no
* communication either */
- for (int i = 0; i < host_nb; i++)
+ for (size_t i = 0; i < host_nb; i++)
model->get_maxmin_system()->expand(host_list[i]->pimpl_cpu->get_constraint(), get_variable(),
(flops_amount == nullptr ? 0.0 : flops_amount[i]));
if (bytes_amount != nullptr) {
- for (int i = 0; i < host_nb; i++) {
- for (int j = 0; j < host_nb; j++) {
+ for (size_t i = 0; i < host_nb; i++) {
+ for (size_t j = 0; j < host_nb; j++) {
if (bytes_amount[i * host_nb + j] > 0.0) {
std::vector<kernel::resource::LinkImpl*> route;
hostList_.at(i)->route_to(hostList_.at(j), route, nullptr);
}
}
- if (nb_link + nb_used_host == 0) {
+ if (link_nb + used_host_nb == 0) {
this->set_cost(1.0);
this->set_remains(0.0);
}
{
double lat_current = 0.0;
- int hostNb = hostList_.size();
+ size_t host_count = hostList_.size();
if (communicationAmount_ != nullptr) {
- for (int i = 0; i < hostNb; i++) {
- for (int j = 0; j < hostNb; j++) {
+ for (size_t i = 0; i < host_count; i++) {
+ for (size_t j = 0; j < host_count; j++) {
- if (communicationAmount_[i * hostNb + j] > 0) {
+ if (communicationAmount_[i * host_count + j] > 0) {
double lat = 0.0;
std::vector<kernel::resource::LinkImpl*> route;
hostList_.at(i)->route_to(hostList_.at(j), route, &lat);
- lat_current = std::max(lat_current, lat * communicationAmount_[i * hostNb + j]);
+ lat_current = std::max(lat_current, lat * communicationAmount_[i * host_count + j]);
}
}
}
class HostL07Model : public HostModel {
public:
HostL07Model();
- ~HostL07Model();
+ ~HostL07Model() override;
double next_occuring_event(double now) override;
void update_actions_state(double now, double delta) override;
- kernel::resource::Action* execute_parallel(int host_nb, sg_host_t* host_list, double* flops_amount,
+ kernel::resource::Action* execute_parallel(size_t host_nb, sg_host_t* host_list, double* flops_amount,
double* bytes_amount, double rate) override;
};
class L07Action : public CpuAction {
friend Action *CpuL07::execution_start(double size);
friend Action *CpuL07::sleep(double duration);
- friend Action* HostL07Model::execute_parallel(int host_nb, sg_host_t* host_list, double* flops_amount,
+ friend Action* HostL07Model::execute_parallel(size_t host_nb, sg_host_t* host_list, double* flops_amount,
double* bytes_amount, double rate);
friend Action* NetworkL07Model::communicate(s4u::Host* src, s4u::Host* dst, double size, double rate);
public:
- L07Action(kernel::resource::Model* model, int host_nb, sg_host_t* host_list, double* flops_amount,
+ L07Action(kernel::resource::Model* model, size_t host_nb, sg_host_t* host_list, double* flops_amount,
double* bytes_amount, double rate);
~L07Action();