X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/aabd69e2ec25a7e7e1b6e3d7d86f531c42f4fca9..e597737e01b6ac76d6e9ccdf67a85c03c53de7c3:/src/surf/ptask_L07.cpp diff --git a/src/surf/ptask_L07.cpp b/src/surf/ptask_L07.cpp index b94e7ce4d0..e875896e66 100644 --- a/src/surf/ptask_L07.cpp +++ b/src/surf/ptask_L07.cpp @@ -143,11 +143,11 @@ void HostL07Model::updateActionsState(double /*now*/, double delta) { if ((action->getRemains() <= 0) && (lmm_get_variable_weight(action->getVariable()) > 0)) { action->finish(); - action->setState(SURF_ACTION_DONE); + action->setState(Action::State::done); } else if ((action->getMaxDuration() != NO_MAX_DURATION) && (action->getMaxDuration() <= 0)) { action->finish(); - action->setState(SURF_ACTION_DONE); + action->setState(Action::State::done); } else { /* Need to check that none of the model has failed */ lmm_constraint_t cnst = NULL; @@ -159,7 +159,7 @@ void HostL07Model::updateActionsState(double /*now*/, double delta) { if (static_cast(constraint_id)->isOff()) { XBT_DEBUG("Action (%p) Failed!!", action); action->finish(); - action->setState(SURF_ACTION_FAILED); + action->setState(Action::State::failed); break; } } @@ -258,58 +258,38 @@ L07Action::L07Action(Model *model, int host_nb, sg_host_t*host_list, xbt_free(host_list); } -Action *NetworkL07Model::communicate(NetCard *src, NetCard *dst, - double size, double rate) +Action *NetworkL07Model::communicate(NetCard *src, NetCard *dst, double size, double rate) { sg_host_t*host_list = xbt_new0(sg_host_t, 2); double *flops_amount = xbt_new0(double, 2); double *bytes_amount = xbt_new0(double, 4); - Action *res = NULL; host_list[0] = sg_host_by_name(src->name()); host_list[1] = sg_host_by_name(dst->name()); bytes_amount[1] = size; - res = p_hostModel->executeParallelTask(2, host_list, flops_amount, bytes_amount, rate); - - return res; + return p_hostModel->executeParallelTask(2, host_list, flops_amount, bytes_amount, rate); } -Cpu *CpuL07Model::createCpu(simgrid::s4u::Host *host, xbt_dynar_t powerPeakList, - tmgr_trace_t power_trace, int core, tmgr_trace_t state_trace) +Cpu *CpuL07Model::createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPerPstate, int core) { - CpuL07 *cpu = new CpuL07(this, host, powerPeakList, power_trace, core, state_trace); - return cpu; + return new CpuL07(this, host, speedPerPstate, core); } Link* NetworkL07Model::createLink(const char *name, double bandwidth, double latency, e_surf_link_sharing_policy_t policy, xbt_dict_t properties) { - xbt_assert(!Link::byName(name), - "Link '%s' declared several times in the platform.", name); - - Link* link = new LinkL07(this, name, properties, bandwidth, latency, policy); - Link::onCreation(link); - return link; + return new LinkL07(this, name, properties, bandwidth, latency, policy); } /************ * Resource * ************/ -CpuL07::CpuL07(CpuL07Model *model, simgrid::s4u::Host *host, - xbt_dynar_t speedPeakList, - tmgr_trace_t speedTrace, - int core, tmgr_trace_t state_trace) - : Cpu(model, host, speedPeakList, core, xbt_dynar_get_as(speedPeakList,0,double)) +CpuL07::CpuL07(CpuL07Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPerPstate, int core) + : Cpu(model, host, speedPerPstate, core) { - p_constraint = lmm_constraint_new(model->getMaxminSystem(), this, xbt_dynar_get_as(speedPeakList,0,double)); - - if (speedTrace) - p_speed.event = future_evt_set->add_trace(speedTrace, 0.0, this); - - if (state_trace) - p_stateEvent = future_evt_set->add_trace(state_trace, 0.0, this); + constraint_ = lmm_constraint_new(model->getMaxminSystem(), this, xbt_dynar_get_as(speedPerPstate,0,double)); } CpuL07::~CpuL07() @@ -325,6 +305,8 @@ LinkL07::LinkL07(NetworkL07Model *model, const char* name, xbt_dict_t props, dou if (policy == SURF_LINK_FATPIPE) lmm_constraint_shared(getConstraint()); + + Link::onCreation(this); } Action *CpuL07::execution_start(double size) @@ -358,14 +340,14 @@ void CpuL07::onSpeedChange() { lmm_variable_t var = NULL; lmm_element_t elem = NULL; - lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(), p_speed.peak * p_speed.scale); + lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(), speed_.peak * speed_.scale); while ((var = lmm_get_var_from_cnst (getModel()->getMaxminSystem(), getConstraint(), &elem))) { Action *action = static_cast(lmm_variable_id(var)); lmm_update_variable_bound(getModel()->getMaxminSystem(), action->getVariable(), - p_speed.scale * p_speed.peak); + speed_.scale * speed_.peak); } Cpu::onSpeedChange(); @@ -378,17 +360,17 @@ bool LinkL07::isUsed(){ void CpuL07::apply_event(tmgr_trace_iterator_t triggered, double value){ XBT_DEBUG("Updating cpu %s (%p) with value %g", getName(), this, value); - if (triggered == p_speed.event) { - p_speed.scale = value; + if (triggered == speed_.event) { + speed_.scale = value; onSpeedChange(); - tmgr_trace_event_unref(&p_speed.event); + tmgr_trace_event_unref(&speed_.event); - } else if (triggered == p_stateEvent) { + } else if (triggered == stateEvent_) { if (value > 0) turnOn(); else turnOff(); - tmgr_trace_event_unref(&p_stateEvent); + tmgr_trace_event_unref(&stateEvent_); } else { xbt_die("Unknown event!\n");